skills/structural-analysis/SKILL.md
Domain-neutral methodology for the second level of Adler-style reading - understanding what a document is about *as a whole* and how its parts relate. Classifies content (practical vs theoretical; sequential / categorical / structured / hybrid), states unity in one sentence, enumerates major parts and their organization, and defines the problems the document tries to solve. Reusable across any extraction workflow - skill creation from a methodology document, Pass-2 content grasp on an academic paper, structural review of a long-form document. Use when an agent has done inspectional reading and now needs to map structure before deeper component extraction. Trigger keywords - structural analysis, document structure, state unity, enumerate parts, Adler Level 2, content classification, define problems.
npx skillsauth add lyndonkl/claude structural-analysisInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
The second level of Adler's reading methodology. Builds on inspectional-reading: now that the document is classified and worth reading further, this skill maps its structure — what it's about as a whole, how the parts relate, what problems it solves.
Invoked autonomously by an agent. The agent reads the document with the structural questions in mind and produces the structured output described below.
- [ ] Step 1: Classify content (practical vs theoretical; structure type; completeness 1-5)
- [ ] Step 2: State the unity in one sentence
- [ ] Step 3: Enumerate major parts and identify organizational pattern
- [ ] Step 4: Define the problems the document tries to solve
- [ ] Step 5: Output structured findings
Time budget: 20-40 minutes for a typical paper / methodology document. Comes after inspectional-reading (Level 1), before component extraction (Level 3).
The calling agent passes:
source: the documentinspectional_output: the structured output from inspectional-reading (Level 1) — type classification, structural skeleton, worthiness assessmentpurpose_context: what this is being read for (e.g., paper_pass_2_content_grasp, skill_extraction_from_methodology)domain_hint: optional## Structural Analysis Output
### Content classification
- Type: {practical | theoretical | hybrid}
- Structure: {sequential | categorical | structured | hybrid}
- Completeness: {1-5} — {one-line rationale}
- Implications: {how this shapes downstream extraction}
### Unity statement
{one sentence using the unity formula below}
Rationale: {why this captures the main point}
### Major parts (enumeration)
1. {Part 1 name} — {what it covers} — {essential | supporting | optional}
2. {Part 2 name} — ...
Organizational pattern: {linear | hub-spoke | layered | modular}
Key relationships: {dependencies; what builds on what}
### Problems
- Main problem: {one sentence on the overarching problem}
- Sub-problems by part: {brief mapping}
- Out of scope: {what this document explicitly does NOT address}
The unity statement is the document's single-sentence "what it is" — your North Star for downstream extraction. Use one of these forms:
Practical content: "This {document type} teaches how to {VERB} {OBJECT} by {METHOD} in order to {PURPOSE}."
Example: "This guide teaches how to conduct user interviews by asking open-ended TEDW-framework questions in order to discover unmet needs and validate assumptions."
Theoretical content: "This {document type} explains {PHENOMENON} through {FRAMEWORK} to enable {APPLICATION}."
Example: "This paper explains cognitive load through information-processing theory to enable instructional designers to build more effective learning materials."
Validate: does it cover the whole document? Is it specific enough to be meaningful? Would the author agree?
Practical vs theoretical:
Structure type:
Completeness 1-5:
purpose_context=skill_extraction_from_methodology. The unity statement seeds the new skill's description field; the parts enumeration suggests workflow steps; the problems become the skill's "when to use" triggers.
purpose_context=paper_pass_2_content_grasp. The unity statement matches the paper's main argument; the parts map to the paper's section structure; the problems frame the Big Question. Pass 2 of paper-three-pass-extraction invokes this skill before answering its content-grasp questions.
purpose_context=structural_review. The agent surfaces structural issues — incoherent unity, parts that don't fit, missing problem definition — for downstream editorial work.
inspectional-reading — Level 1, run before this. Provides the classification + structural skeleton this skill builds on.component-extraction — Level 3, run after this. Operates on the parts this skill enumerated.synthesis-application — Level 4, evaluates the extracted components for completeness + logic.paper-three-pass-extraction invokes this skill in Pass 2.skills/skill-creator/SKILL.md invokes this skill as its Step 2.testing
Cluster a conference's event records into a small set of coarse themes with finer sub-clusters, an explicit outlier bucket, and soft (multi-membership) affinities — using the hybrid embed-then-label pipeline (embed abstracts, reduce, density-cluster, then LLM-label the clusters) when embedding libraries are available, and an LLM-reasoned hierarchical fallback when they are not. Embeddings do the grouping; the LLM only names the groups. Conference-agnostic. Use when turning structured event records into a navigable theme map for preference elicitation and scheduling, when you need 6-8 reasonable themes rather than 20 muddy ones, or when overlapping talks must belong to more than one theme. Trigger keywords - theme clustering, cluster talks, embed then label, soft membership, outlier talks, conference themes, topic map.
development
Build a personal conference schedule as a constraint-optimization problem — hard constraints (no time overlap, room-to-room travel time, capacity/registration, the attendee's own must-attends and blackouts) plus a user-owned weighted objective trading interest against breadth, pacing (maximize contiguous free time), and serendipity. Surfaces unbreakable conflicts (two high-value overlapping talks the model cannot rank) as decisions for the human rather than silently picking, and reports what each choice traded away. Conference-agnostic. Use to turn a preference profile plus a theme map into a day-by-day plan, to resolve overlapping sessions, or to balance a packed vs paced schedule. Trigger keywords - schedule optimization, conference schedule, constraint optimization, overlapping talks, contiguous free time, conflict surfacing, packed vs paced.
development
Parse a heterogeneous conference program (markdown, HTML, PDF-derived text, or JSON) into normalized event records with per-field confidence scores and independent classification axes (topic, depth, format, prerequisites, recorded, capacity). Detects the program's format before extracting, treats every inferred field as uncertain (present vs inferred vs missing), and flags thin or missing abstracts so downstream enrichment can target them. Conference-agnostic. Use when ingesting a conference or event schedule into a structured store, normalizing a talk/session list, or extracting per-session metadata with calibrated confidence. Trigger keywords - program ingestion, parse schedule, session extraction, event records, conference program, talk metadata, per-field confidence.
development
Build a personalized preference profile from a small number of well-chosen, cluster-grounded questions instead of a long survey. Represents the person's interests as an uncertainty region over the theme map, picks the single highest-information-gain choice-based question (contrasting real talks from different clusters), balances exploiting known interests against exploring uncertain ones, deliberately injects outlier probes to fight selection bias, and stops as soon as the schedule would be stable. Also elicits the user-owned objective weights and hard constraints. Interactive — runs where it can actually ask the person. Conference-agnostic. Use to turn a theme map into a preference profile, to decide what to ask a conference attendee, or to elicit scheduling priorities. Trigger keywords - preference elicitation, ask few questions, information gain, choice-based questions, selection bias probe, objective weights, attendee preferences.