@chrono-meta/fh-gate 1.0.3 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/.claude/agents/challenger.md +169 -0
  2. package/AGENTS.md +160 -0
  3. package/CATALOG.md +256 -0
  4. package/CHEATSHEET.md +367 -0
  5. package/CLAUDE.md +331 -0
  6. package/CONTRIBUTING.md +198 -0
  7. package/LICENSE +21 -0
  8. package/README.md +131 -418
  9. package/bin/fh-goal.js +9 -0
  10. package/bin/fh-run.js +9 -0
  11. package/docs/banner.png +0 -0
  12. package/docs/codex-compat.md +123 -0
  13. package/docs/pillars.svg +70 -0
  14. package/knowledge/shared/harness-core/fh_integration_contract.md +48 -29
  15. package/package.json +31 -6
  16. package/plugins/fh-commons/README.md +37 -0
  17. package/plugins/fh-commons/agents/quench-challenger.md +373 -0
  18. package/plugins/fh-commons/skills/convergence-loop/SKILL.md +155 -0
  19. package/plugins/fh-commons/skills/deliberation/SKILL.md +288 -0
  20. package/plugins/fh-commons/skills/mcp-circuit-breaker/SKILL.md +196 -0
  21. package/plugins/fh-commons/skills/token-budget-gate/SKILL.md +175 -0
  22. package/plugins/fh-meta/agents/fact-checker.md +121 -0
  23. package/plugins/fh-meta/agents/hub-persona-auditor.md +109 -0
  24. package/plugins/fh-meta/agents/persona-innovator.md +195 -0
  25. package/plugins/fh-meta/skills/agent-composer/SKILL.md +461 -0
  26. package/plugins/fh-meta/skills/agent-composer/SKILL_detail.md +464 -0
  27. package/plugins/fh-meta/skills/apex-review/SKILL.md +185 -0
  28. package/plugins/fh-meta/skills/asset-placement-gate/SKILL.md +135 -0
  29. package/plugins/fh-meta/skills/contention-layer/SKILL.md +127 -0
  30. package/plugins/fh-meta/skills/context-bridge-dispatch/SKILL.md +30 -0
  31. package/plugins/fh-meta/skills/context-bridge-dispatch/SKILL_detail.md +144 -0
  32. package/plugins/fh-meta/skills/context-doctor/SKILL.md +341 -0
  33. package/plugins/fh-meta/skills/cross-ecosystem-synergy-detection/SKILL.md +202 -0
  34. package/plugins/fh-meta/skills/deep-clarify/SKILL.md +144 -0
  35. package/plugins/fh-meta/skills/edit-manifest/SKILL.md +210 -0
  36. package/plugins/fh-meta/skills/field-harvest/SKILL.md +384 -0
  37. package/plugins/fh-meta/skills/frontier-digest/SKILL.md +272 -0
  38. package/plugins/fh-meta/skills/goal-quench/SKILL.md +509 -0
  39. package/plugins/fh-meta/skills/harness-doctor/SKILL.md +277 -0
  40. package/plugins/fh-meta/skills/harness-doctor/SKILL_detail.md +484 -0
  41. package/plugins/fh-meta/skills/harvest-loop/SKILL.md +231 -0
  42. package/plugins/fh-meta/skills/harvest-loop/SKILL_detail.md +201 -0
  43. package/plugins/fh-meta/skills/hub-cc-pr-reviewer/SKILL.md +129 -0
  44. package/plugins/fh-meta/skills/hub-cc-pr-reviewer/SKILL_detail.md +158 -0
  45. package/plugins/fh-meta/skills/install-doctor/SKILL.md +207 -0
  46. package/plugins/fh-meta/skills/install-wizard/SKILL.md +613 -0
  47. package/plugins/fh-meta/skills/marketplace-gate/SKILL.md +193 -0
  48. package/plugins/fh-meta/skills/memory-hygiene/SKILL.md +143 -0
  49. package/plugins/fh-meta/skills/meta-prompt-builder/SKILL.md +167 -0
  50. package/plugins/fh-meta/skills/meta-prompt-builder/SKILL_detail.md +37 -0
  51. package/plugins/fh-meta/skills/pipeline-conductor/SKILL.md +430 -0
  52. package/plugins/fh-meta/skills/plugin-recommender/SKILL.md +221 -0
  53. package/plugins/fh-meta/skills/plugin-recommender/SKILL_detail.md +220 -0
  54. package/plugins/fh-meta/skills/prompt-regression/SKILL.md +178 -0
  55. package/plugins/fh-meta/skills/public-surface-audit/SKILL.md +224 -0
  56. package/plugins/fh-meta/skills/return-path-gate/SKILL.md +257 -0
  57. package/plugins/fh-meta/skills/self-marketing-lint/SKILL.md +129 -0
  58. package/plugins/fh-meta/skills/sim-conductor/SKILL.md +364 -0
  59. package/plugins/fh-meta/skills/sim-conductor/SKILL_detail.md +337 -0
  60. package/plugins/fh-meta/skills/skill-splitter/SKILL.md +126 -0
  61. package/plugins/fh-meta/skills/skill-splitter/SKILL_detail.md +185 -0
  62. package/plugins/fh-meta/skills/source-grounding-audit/SKILL.md +230 -0
  63. package/plugins/fh-meta/skills/source-grounding-audit/SKILL_detail.md +182 -0
  64. package/plugins/fh-meta/skills/steel-quench/SKILL.md +226 -0
  65. package/plugins/fh-meta/skills/steel-quench/SKILL_detail.md +453 -0
  66. package/plugins/fh-meta/skills/verify-bidirectional/SKILL.md +238 -0
  67. package/scripts/fh-gate.sh +175 -40
  68. package/scripts/fh-goal.sh +182 -0
  69. package/scripts/fh-run.sh +269 -0
@@ -0,0 +1,257 @@
1
+ ---
2
+ name: return-path-gate
3
+ description: Audits SKILL.md files in plugins/ for return-path gate compliance. Detects fire-and-forget chains where a caller dispatches a downstream skill but does not gate its next step on the callee's verdict. Reports each chain as CLOSED or OPEN and outputs specific fix suggestions. Triggered by "chain audit", "return-path check", "fire-and-forget detection", "chain closure audit", "skill chain compliance".
4
+ user-invocable: true
5
+ allowed-tools: ["Read", "Bash", "Glob", "Grep"]
6
+ model: sonnet
7
+ ---
8
+
9
+ # return-path-gate — Skill Chain Closure Audit
10
+
11
+ A skill chain is CLOSED when the callee's verdict folds back into the caller's decision logic. A chain is OPEN (fire-and-forget) when the caller dispatches a downstream skill but proceeds independently of the result.
12
+
13
+ This skill audits `§Chains` and `§Done When` sections across SKILL.md files to detect OPEN chains and prescribe specific closures.
14
+
15
+ ## Role Separation from harness-doctor
16
+
17
+ | Dimension | harness-doctor | return-path-gate |
18
+ |---|---|---|
19
+ | **What it checks** | Structural completeness (files, references, line counts, drift) | Chain closure compliance (caller/callee verdict handoff) |
20
+ | **Core question** | "Are the required harness files present and consistent?" | "Does the caller wait for the callee's verdict?" |
21
+ | **Failure mode detected** | Missing CLAUDE.md, broken refs, complexity drift | Fire-and-forget chains, unverified CONDITIONAL_PASS conditions |
22
+ | **Output** | L1–L5 structural health report | CLOSED/OPEN chain table with fix prescriptions |
23
+
24
+ ---
25
+
26
+ ## Trigger Phrases
27
+
28
+ | Phrase | Situation |
29
+ |---|---|
30
+ | "chain audit", "chain closure audit" | Full scan of all skill chains in plugins/ |
31
+ | "return-path check", "return-path gate" | Explicit compliance audit |
32
+ | "fire-and-forget detection", "fire-and-forget chain" | Targeting known anti-pattern |
33
+ | "skill chain compliance" | Pre-flight check before pipeline execution |
34
+ | "does this skill wait for verdict" | Single-skill targeted check |
35
+ | "check chains in [skill-name]" | Scoped audit on a named skill |
36
+ | `/return-path-gate` | Explicit call |
37
+
38
+ ---
39
+
40
+ ## Audit Scope Options
41
+
42
+ | Flag | Scope | When to use |
43
+ |---|---|---|
44
+ | `--skill [name]` | Single named skill | Targeted check during development |
45
+ | `--all` | All SKILL.md files under `plugins/` | Full compliance sweep |
46
+ | `--pr` | Skills changed relative to `origin/main` | Pre-PR gate mode (worktree-aware) |
47
+ | *(default)* | Modified + newly added SKILL.md files in working tree | Pre-commit gate mode |
48
+
49
+ ---
50
+
51
+ ## Execution Steps
52
+
53
+ ### Step 0. Determine Scope
54
+
55
+ ```bash
56
+ # Default: modified and newly added SKILL.md files in working tree
57
+ { git diff --name-only HEAD; git ls-files --others --exclude-standard; } | grep "SKILL\.md"
58
+
59
+ # --pr mode: PR-relative, worktree-aware (use for pre-PR audits)
60
+ git diff --name-only origin/main...HEAD | grep "SKILL\.md"
61
+
62
+ # --all: full scan
63
+ find plugins/ -name "SKILL.md" | sort
64
+
65
+ # --skill [name]: targeted
66
+ find plugins/ -path "*[name]/SKILL.md"
67
+ ```
68
+
69
+ If 0 SKILL.md files are in scope, output: "No SKILL.md files in scope — audit skipped." and stop.
70
+
71
+ ---
72
+
73
+ ### Step 1. Extract Chain Declarations
74
+
75
+ For each SKILL.md in scope, extract:
76
+
77
+ 1. **`§Chains` section** — every `→ [skill-name]` reference (downstream dispatch)
78
+ 2. **`§Done When` section** — completion conditions listed by the caller
79
+
80
+ **Two-pass extraction** (mandatory — do not conflate the two passes):
81
+
82
+ **Pass A — Caller-wait signals** (look for in §Done When of the *caller* skill):
83
+ ```
84
+ "wait for" ← waits for callee verdict before proceeding
85
+ "verdict received"
86
+ "folds back"
87
+ "gates on"
88
+ "callee returns"
89
+ ```
90
+ These signals indicate the caller waits for the callee's verdict. They are the primary CLOSED gate.
91
+
92
+ **Pass B — Callee-output signals** (look for in §Done When of the *callee* skill):
93
+ ```
94
+ Verdict: PASS | CONDITIONAL_PASS | FAIL | ESCALATE
95
+ ```
96
+ These signals indicate the callee emits a structured verdict. They confirm the callee side is closeable. They do **not** indicate the caller waits — treat as callee-role evidence only and never conflate with Pass A.
97
+
98
+ **Step 1 output**:
99
+
100
+ ```
101
+ ## Step 1 — Chain Extraction
102
+
103
+ Skill: [skill-name]
104
+ §Chains dispatches: → [callee-1], → [callee-2]
105
+ §Done When (Pass A — caller-wait signals): [extracted text or "none"]
106
+ [callee-1] §Done When (Pass B — callee-output signals): [extracted text or "none"]
107
+ ```
108
+
109
+ ---
110
+
111
+ ### Step 2. Classify Each Chain as CLOSED or OPEN
112
+
113
+ Apply the following decision rules per (caller → callee) pair.
114
+
115
+ **CLOSED criteria**:
116
+
117
+ 1. **(Mandatory)** Caller §Done When has Pass A signals (caller-wait: "wait for", "verdict received", "folds back", "gates on", "callee returns")
118
+ 2. **(Mandatory)** Callee §Done When has Pass B signals (callee-output: `Verdict: PASS | CONDITIONAL_PASS | FAIL | ESCALATE`)
119
+ 3. **(Advisory — not independently required)** Caller §Chains uses the closed form: `→ Mandatory next ([callee]) when [condition]; verdict folds back into [step]`
120
+
121
+ **CLOSED when**: Criteria 1 AND 2 both pass. Criterion 3 adds confidence but is not mandatory — a skill with informal §Chains language that still satisfies criteria 1+2 is CLOSED.
122
+
123
+ **OPEN when**: Criterion 1 OR criterion 2 fails:
124
+ - Caller §Done When has no Pass A signals, OR
125
+ - Callee §Done When has no Pass B signals
126
+
127
+ **Highest-risk OPEN pattern — CONDITIONAL_PASS gap**: Callee §Done When lists conditions under `CONDITIONAL_PASS` but caller §Done When has no mechanism to enforce resolution. Classify as OPEN + flag `CONDITIONAL_PASS gap` in basis.
128
+
129
+ **Severity assignment** (two dimensions — take the higher tier as final severity):
130
+
131
+ *Caller tier*:
132
+ | Caller identity | Tier |
133
+ |---|:---:|
134
+ | Core pipeline skill (harvest-loop, steel-quench, apex-review, agent-composer, sim-conductor, pipeline-conductor) | HIGH |
135
+ | Diagnostic or gate skill (harness-doctor, source-grounding-audit, verify-bidirectional, return-path-gate) | MEDIUM |
136
+ | Utility or advisory skill (context-doctor, plugin-recommender, frontier-digest, etc.) | LOW |
137
+
138
+ *Callee consequence tier*:
139
+ | Callee output capability | Tier |
140
+ |---|:---:|
141
+ | Callee can output FAIL or ESCALATE verdicts | HIGH |
142
+ | Callee can output CONDITIONAL_PASS verdicts | MEDIUM |
143
+ | Callee is advisory only (no structured verdict) | LOW |
144
+
145
+ **Final severity** = max(caller tier, callee consequence tier).
146
+
147
+ **Step 2 output**:
148
+
149
+ ```
150
+ ## Step 2 — Chain Classification
151
+
152
+ | Caller | → Callee | Status | Severity | Basis |
153
+ |---|---|:---:|:---:|---|
154
+ | [skill] | [callee] | CLOSED | — | Criteria 1+2 pass; criterion 3 advisory met |
155
+ | [skill] | [callee] | OPEN | HIGH | Caller §Done When: no Pass A signals |
156
+ ```
157
+
158
+ ---
159
+
160
+ ### Step 3. Generate Fix Prescriptions for OPEN Chains
161
+
162
+ For each OPEN chain, output a specific prescription. Use the Implementation Checklist from `knowledge/shared/harness-core/return_path_gate.md` as the fix template.
163
+
164
+ **Core FH skill scope check**: If the callee is a core FH skill (harvest-loop, steel-quench, sim-conductor, apex-review, agent-composer, pipeline-conductor), output a **proposal-only note** flagged for human review. Do not generate a standard callee-side prescription — changes to core FH skills have downstream consequences requiring deliberate review.
165
+
166
+ **Tool limitation**: `allowed-tools` does not include `Write` or `Edit`. All prescriptions are text output only — manual application required.
167
+
168
+ **Fix prescription format**:
169
+
170
+ ```
171
+ ### OPEN: [caller] → [callee] (Severity: HIGH/MEDIUM/LOW)
172
+
173
+ Required changes:
174
+
175
+ 1. [caller]/SKILL.md §Chains:
176
+ Replace: → [callee]
177
+ With: → Mandatory next ([callee]) when [condition]; verdict folds back into [step N]
178
+
179
+ 2. [caller]/SKILL.md §Done When:
180
+ Add: "Wait for [callee] verdict before proceeding to [next action]"
181
+
182
+ 3. [callee]/SKILL.md §Done When:
183
+ [If callee is a core FH skill] → PROPOSAL ONLY — flag for human review before modifying
184
+ [Otherwise] Add structured verdict block:
185
+ Verdict: PASS | CONDITIONAL_PASS | FAIL | ESCALATE
186
+ Conditions: [list — only present when CONDITIONAL_PASS]
187
+ Basis: [one-line rationale]
188
+
189
+ 4. [callee]/SKILL.md §Chains (if not present):
190
+ Add: "Returns verdict to [caller]"
191
+ ```
192
+
193
+ **Simplification guard**: If callee already outputs a structured verdict (Pass B satisfied) but caller only lacks Pass A signals, output only caller-side changes (items 1 and 2).
194
+
195
+ ---
196
+
197
+ ### Step 4. Summary Report
198
+
199
+ ```
200
+ ## return-path-gate Audit Complete
201
+
202
+ Scope: [--skill name | --all | --pr | changed files (default)]
203
+ Skills audited: N
204
+ Chains evaluated: N
205
+
206
+ Results:
207
+ CLOSED: N chains
208
+ OPEN: N chains (HIGH: N / MEDIUM: N / LOW: N)
209
+
210
+ HIGH severity OPEN chains (requires immediate fix):
211
+ - [caller] → [callee]
212
+
213
+ Next actions:
214
+ - Apply prescriptions above for each OPEN chain
215
+ - Re-run /return-path-gate --skill [name] after each fix to confirm CLOSED
216
+ - HIGH severity chains block pipeline-conductor Step 0.5 pre-flight
217
+ ```
218
+
219
+ ---
220
+
221
+ ## Done When
222
+
223
+ ```
224
+ Step 0 scope determined; SKILL.md files identified
225
+ + Step 1 two-pass extraction complete (Pass A caller-wait + Pass B callee-output evaluated separately)
226
+ + Step 2 every (caller → callee) pair classified CLOSED or OPEN with two-dimension severity
227
+ + Step 3 fix prescriptions output for each OPEN chain (core FH skills: proposal-only)
228
+ + Step 4 summary report with CLOSED/OPEN counts output
229
+ ```
230
+
231
+ > Fix prescriptions are text output only (Write not in allowed-tools). Prescription application is manual and out of scope for this skill. Verification of applied fixes requires re-running `/return-path-gate --skill [name]`.
232
+
233
+ Verdict: PASS (0 HIGH severity OPEN chains) | CONDITIONAL_PASS (MEDIUM/LOW severity OPEN chains only) | FAIL (1+ HIGH severity OPEN chains found)
234
+
235
+ ---
236
+
237
+ ## Connected Skills
238
+
239
+ | Situation | Connected Skill |
240
+ |---|---|
241
+ | Check harness structural completeness alongside chain closure | `/harness-doctor` |
242
+ | Verify phantom references in §Chains targets (callee skill actually exists) | `/source-grounding-audit` |
243
+ | Run chain audit as pre-flight before parallel dispatch | `pipeline-conductor` Step 0.5 calls this skill |
244
+ | Prescribe verdict format for callee skills missing structured output | `/meta-prompt-builder` |
245
+ | Chain OPEN finding becomes improvement candidate | `/field-harvest` |
246
+
247
+ ---
248
+
249
+ ## Operating Notes
250
+
251
+ - **Read callee SKILL.md directly**: Do not infer whether a callee outputs structured verdicts from memory. Always Read the callee's `§Done When` section.
252
+ - **Two-pass extraction is mandatory**: Pass A (caller-wait signals) and Pass B (callee-output signals) serve different purposes. Never conflate them — a callee-output signal in §Done When is not a caller-wait signal.
253
+ - **Criterion 3 is advisory**: §Chains formal language (`→ Mandatory next ...`) adds confidence but criteria 1+2 are the mandatory gate. A skill with informal §Chains language that still satisfies criteria 1+2 is CLOSED.
254
+ - **CONDITIONAL_PASS gate is the highest-risk gap**: A chain where CONDITIONAL_PASS conditions are listed by the callee but the caller has no enforcement path is OPEN even if other verdict paths fold correctly.
255
+ - **Scope default is narrow by design**: Default captures modified + newly added files (not just staged changes). Use `--pr` for PR-relative mode in worktrees, `--all` for periodic sweeps.
256
+ - **Core FH skill prescriptions are proposals only**: Edits to harvest-loop, steel-quench, sim-conductor, and other core skills require deliberate review — output proposal notes, not standard prescriptions.
257
+ - **Reference pattern**: `knowledge/shared/harness-core/return_path_gate.md` defines the canonical closed-loop structure and verified instances (apex-review → sim-conductor, agent-composer ↔ deliberation). These are the ground-truth CLOSED examples for calibrating classification.
@@ -0,0 +1,129 @@
1
+ ---
2
+ name: self-marketing-lint
3
+ description: >-
4
+ DEPRECATED — merged into harness-doctor --lint mode (2026-06-02).
5
+ Language pattern detection (self-marketing, cushion words, version labels) is now Step 3-L of harness-doctor.
6
+ Use /harness-doctor --lint instead.
7
+ user-invocable: false
8
+ allowed-tools: []
9
+ model: sonnet
10
+ deprecated: true
11
+ deprecated_reason: absorbed into harness-doctor Step 3-L (--lint mode)
12
+ deprecated_date: 2026-06-02
13
+ successor: harness-doctor
14
+ ---
15
+
16
+ # self-marketing-lint — FH Self-Marketing Language Detection + Replacement Suggestions
17
+
18
+ > Detection criteria are defined inline in this skill (see "Inline Baseline" below).
19
+ > The skill is self-contained and does not depend on external personal-memory documents.
20
+
21
+ ## Triggers
22
+
23
+ - `/self-marketing-lint`
24
+ - "Check FH files", "remove marketing language", "description diet"
25
+ - "Catch self-marketing language", "run the lint"
26
+ - When surfaced as a HIGH item in harvest-loop (P10 series)
27
+
28
+ ## Detection Patterns (Inline Baseline)
29
+
30
+ The following criteria are self-contained inside this skill. No external personal-memory file is required.
31
+
32
+ ### Self-Marketing Anti-Patterns
33
+
34
+ 1. **Self-declarations of quality**: "industry-leading", "world-class", "production-ready", "the world's first" without external evidence
35
+ 2. **Round-counters and version brags**: "after 26 iterations", "v0.5 maturity", "22nd naming round", "prototype 9th iteration" — irrelevant to function
36
+ 3. **Cushion language**: "perfectly", "easily", "seamlessly", "instantly", "without burden" — content-free intensifiers
37
+ 4. **Owner self-reference loops**: "validated by our team", "proven internally" — circular evidence with no external check
38
+ 5. **Marketing word stacking**: 3+ adjectives in one sentence
39
+ 6. **Spec-only artifacts**: skills/agents missing a Done When section — declaration without observable output
40
+
41
+ | Pattern type | Examples (detection targets) | Replacement direction |
42
+ |---|---|---|
43
+ | Version labels | "v0.3", "latest version", "(added 2026-05-24)" | Remove (git history manages versioning) |
44
+ | Emphasis words | "fully automated", "instantly", "automatically", "full coverage" | Replace with functional description |
45
+ | Iteration counts | "22nd naming", "26th round", "prototype 9th iteration" | Remove or move to external document |
46
+ | Self-declarations | "This skill is the world's first", "Core FH skill" | Delete |
47
+ | Cushion language | "easily", "conveniently", "without burden" | Replace with behavior-based description |
48
+ | Spec-only (no outputs) | Skills missing Done When | Require adding an outputs section |
49
+
50
+ ## Execution Steps
51
+
52
+ ### Step 1. Scan Target Files
53
+
54
+ ```bash
55
+ # full list of skill files
56
+ find {FH_ROOT}/plugins -name "SKILL.md" | sort
57
+
58
+ # full list of agent files
59
+ find {FH_ROOT}/.claude/agents -name "*.md" | sort
60
+
61
+ # docs/ public documents
62
+ find {FH_ROOT}/docs -name "*.md" | sort
63
+ ```
64
+
65
+ Scope: specified files only if target is given / full scan if unspecified.
66
+
67
+ ### Step 2. Confirm Inline Baseline
68
+
69
+ Re-read the "Detection Patterns (Inline Baseline)" section above. No external file load is required — the skill is self-contained.
70
+
71
+ ### Step 3. Pattern Detection
72
+
73
+ Grep detection patterns in each file's description field + body.
74
+
75
+ ```bash
76
+ # version / iteration count patterns
77
+ grep -n "v[0-9]\+\.[0-9]\|[0-9]\+th\|[0-9]\+th iteration\|prototype [0-9]\+" {file}
78
+
79
+ # emphasis word patterns
80
+ grep -n "fully\|instantly\|full coverage\|automatically\|conveniently\|easily\|without burden" {file}
81
+
82
+ # self-declaration patterns
83
+ grep -n "core skill\|world's first\|best\|most\|top" {file}
84
+ ```
85
+
86
+ ### Step 4. Output Replacement Suggestions
87
+
88
+ Organize and output detection results per file.
89
+
90
+ ```
91
+ File: {path}
92
+ L{line}: "{original text}"
93
+ → Suggested: "{replacement text}" (reason: {pattern type})
94
+ → Or: recommend removal (reason: {pattern type})
95
+ ```
96
+
97
+ **No automatic edits**: Output suggestions only. Actual edits proceed after user confirmation.
98
+
99
+ ### Step 5. Summary Report
100
+
101
+ ```
102
+ ## self-marketing-lint results
103
+
104
+ Target: {N} files
105
+ Detected: {N} items
106
+
107
+ | File | Detection count | Most common pattern |
108
+ |---|---|---|
109
+ ...
110
+
111
+ Recommendation: prioritize files with highest detection counts for review
112
+ ```
113
+
114
+ ## Done When
115
+
116
+ ```
117
+ 1. Full scan of target files complete
118
+ 2. Inline baseline criteria applied (no external file dependency)
119
+ 3. Detection results organized and output per file
120
+ 4. No automatic edits — user confirmation gate maintained
121
+ ```
122
+
123
+ ## Connections
124
+
125
+ | Situation | Connection |
126
+ |---|---|
127
+ | harvest-loop HIGH P10 series triggered | auto-suggest `/self-marketing-lint` |
128
+ | During cold audit | `/steel-quench` + self-marketing-lint in parallel |
129
+ | Before external distribution | `fh-meta:hub-persona-auditor` followed by self-marketing-lint |