Performs deep architectural analysis of a specified module, directory, or feature area by examining structural coupling, data flow, concurrency patterns, risk, and SOLID alignment.
SkillScore28Maintained
Automatic
◆Coding pack
Last verified 9/25/2026
What it changes
Passed 3 of 9 test cases with the skill, and 1 of 9 without it.
Without skill16%
With skill28%
Checks it passed that the model alone missed
Passes S#, B#, and C# findings to han-core:risk-analyst.
Preserves finding IDs and code fences without prose modifications.
Includes the verbatim statement that no concurrency patterns were found.
and 3 more in the full report
5 fixed2 passed either way16 still failing2 broke
Pass-rate lift
+12 pp
Tokens
+310%
Agent turns
0%
Response time
-31%
Model gemini-3.6-flashMeasured 9/25/2026v27 of 25 cases passed with skill · 9 comparable
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 5 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 5
Prompt
When dispatching `han-core:risk-analyst` during the synthesis wave, which upstream findings should be passed into its brief?
What was checked, without and with the skill
Checked
Without skill
With skill
Passes S#, B#, and C# findings to han-core:risk-analyst.
Missed
Passed
Excludes security and devops findings from han-core:risk-analyst input context.
Missed
Passed
case-13 · gemini-3.6-flash · 9/25/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
As your first action, use the Read tool on .han/config.md inside the personal config directory path above. A read
that returns no file is no personal configuration: continue silently. When that file or the project .han/config.md
probe supplies content, apply it per config-rule.md, which governs precedence
between the two files, relative-path resolution, and what to do with a file that reads but cannot be used.
Operating Principles
Read these before dispatching anything. They constrain every step below.
A focus area is required. This skill analyzes a specific module, directory, or feature. "Analyze the whole
codebase" is not a valid input. If no focus area resolves to real files, stop and ask the user to name one.
The agents own the judgment; the skill orchestrates. The skill validates the focus area, classifies size, selects
the roster, fans agents out and in, and renders the report. It does not produce findings itself.
The discovery roster is signal-selected; the synthesis spine always runs.han-core:structural-analyst,
han-core:behavioral-analyst, han-core:risk-analyst, and han-core:software-architect run at every size BECAUSE
structure, runtime behavior, risk-of-inaction, and SOLID synthesis are the irreducible core of an architectural read.
Every other specialist is added only when the focus area's signals warrant it and the size band allows it, BECAUSE
dispatching an agent whose domain the code does not touch burns tokens and dilutes the report with low-signal
findings.
Default to small. Start classification at small and escalate only when a higher-band signal is clearly present.
Borderline signals stay at the smaller band. Under-dispatching is recoverable by re-running at a larger size;
over-dispatching is not.
Recommendations, not refactors. The skill never modifies code. han-core:software-architect (and
han-core:system-architect when dispatched) produce pseudocode sketches for proposed boundaries. Implementation is a
separate, later step.
Negative results are valuable. When a dimension is genuinely clean (no concurrency in a pure-functional module,
sound boundaries), the report says so. Agents must not fabricate findings to fill a section.
Single pass, no iteration round. This skill is a fan-out / fan-in, not an iterative loop. If a band proves too
small, the user re-runs at a larger size — the skill does not self-escalate mid-run.
System-altitude work is deferred by default.han-core:software-architect defers cross-service / bounded-context
/ trust-boundary findings rather than absorbing them. han-core:system-architect is added to the roster only at large
size and only when a boundary-crossing seam is actually present. When it is not dispatched, those deferrals are