@chrono-meta/fh-gate 1.1.0 → 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 +60 -7
  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 +45 -28
  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,158 @@
1
+ ---
2
+ name: hub-cc-pr-reviewer-detail
3
+ description: On-demand detail for hub-cc-pr-reviewer — step bash commands, comment template, sister-asset utilization, external-environment adaptation, disable path, and persona synergy handling. Read when executing a step or operating in an external/own-PRS/deep-insight environment.
4
+ load: on-demand
5
+ ---
6
+
7
+ ## §Step 1 Diff Read
8
+
9
+ ```bash
10
+ gh pr diff "$PR_NUMBER" # Read changes directly
11
+ gh pr view "$PR_NUMBER" --json files,additions,deletions,baseRefName,headRefName,title,body # Metadata
12
+ ```
13
+
14
+ If this cc authored the change, `gh pr diff` can be skipped (directly state changed areas in PR body).
15
+
16
+ ## §Step 4 Comment Template
17
+
18
+ ```bash
19
+ gh pr comment "$PR_NUMBER" --body "$(cat <<'EOF'
20
+ ## Hub CC Review (Hub Gate — Accumulated Operation Proof)
21
+
22
+ ### Baseline Consistency Check 8-Matrix
23
+ {Step 2 results}
24
+
25
+ ### Layer 5 Self-Catch Matrix
26
+ {Step 3 results / omit if 0 items}
27
+
28
+ ### Refinement Suggestions (following simplification guard / areas for subsequent rounds outside this PR)
29
+ {Subsequent round areas / omit if 0 items}
30
+
31
+ ### Admin Override Merge Recommendation
32
+ {User decision delegation / beta stage policy adherence}
33
+ EOF
34
+ )"
35
+ ```
36
+
37
+ ## §Step 5 Merge Command
38
+
39
+ ```bash
40
+ # Execute after user decision (this skill does NOT execute)
41
+ gh pr merge "$PR_NUMBER" --squash --admin --delete-branch
42
+ ```
43
+
44
+ ## §Sister Asset Utilization Path
45
+
46
+ Sister Asset Utilization Path (cross-ecosystem-synergy-detection v0.2 baseline consistency)
47
+
48
+ | Cluster | Utilization path | Acceleration to 5+ instances |
49
+ |---|---|:---:|
50
+ | **QA cluster** (project QA repos) | Domain-specific consistency check auto-activation on action leader cc PR submission | ★★★ |
51
+ | **Meta cluster** (forge-harness · related plugins) | FH-meta area new skill consistency / meta/rule baseline consistency check | ★★ |
52
+ | **Automation cluster** (CI/CD automation tools) | Compare roles with external review tools and decide whether to apply as supplementary axis | ★★ |
53
+
54
+ ## §External User Environment Adaptation Path
55
+
56
+ External User Environment Adaptation Path (path B generalization baseline)
57
+
58
+ This skill = original developer hub environment baseline. External user (mode C install) environment adaptation path — following forge-harness core proposition *"Beta + public release = obligation to have practical capabilities"*.
59
+
60
+ ### External User Environment Assumptions
61
+
62
+ External users in 2 tiers:
63
+
64
+ | Type | Internal GHE access | Applicable path |
65
+ |---|---|---|
66
+ | **Internal non-hub** (org employee, not owner) | Yes | Replace matrix with user's own baseline assets — can use internal GHE PR workflow as-is |
67
+ | **External** (outside org) | No | Apply entire Fallback Matrix below — fully replace with user's own environment assets |
68
+
69
+ Common: In external user install environments, **the install environment user** is the baseline integrity gate operator.
70
+
71
+ This skill's core essence = "PR input → baseline consistency check + self-catch + review comment + merge recommendation" — cross-applicable to both types.
72
+
73
+ ### Own PRS Priority Environment Catch (following Scenario 3 devil-advocate)
74
+
75
+ In external user environments where **own PRS (pr-reviewer-self)** is already established (environments with own PR review skill/rules/hooks/own conventions) — risk of conflict when this skill and own PRS activate simultaneously. Lack of activation trigger priority resolution catch.
76
+
77
+ **Common conflict examples**: `code-review` skills · PR review hooks (`.claude/hooks/post-tool-use`) · review skills from other plugins — duplicate activation on same triggers ("PR", "review").
78
+
79
+ → **Disable path** adherence mandatory (see § below). Disable this skill baseline in environments where own PRS takes priority.
80
+
81
+ ### Fallback Matrix (Original Developer Environment → External Environment Replacement)
82
+
83
+ | Original developer environment dependency | External user environment fallback |
84
+ |---|---|
85
+ | `memory feedback_*.md` accumulated naming/decision baseline + asset synergy branch judgment etc. (Step 2 matrix #2) | User environment's own baseline assets (`memory/` · `notes/` · `docs/` · `CLAUDE.md`) |
86
+ | `CLAUDE.md` hub identity (Step 2 matrix #1) | User environment's own `CLAUDE.md` or project README rules § |
87
+ | Accumulated naming/decision baseline adherence (Step 2 matrix #3) | User environment's own naming/decision baseline |
88
+ | `CATALOG.md` ## Plugins / ## Skills / ## Agents (Step 2 matrix #6) | User environment's own catalog or asset classification (skip if absent) |
89
+ | Option C Hybrid sync policy (Step 2 matrix #7) | User environment's own PR/direct push policy (user environment baseline adherence) |
90
+ | PR lifecycle operation proof history + accumulated self-catch (Step 2 matrix #8) | User environment's own operation proof starting at 0 instances |
91
+
92
+ ### External User Usage Scenarios
93
+
94
+ 1. **General PR review automation**: On user PR submission → this skill auto-activates → 5-step processing + review comment attachment
95
+ 2. **User's own baseline consistency check**: Generalize 8 Step 2 matrix items to user's own environment assets
96
+ 3. **Accumulate user's own self-catch count**: Starting at 0 / operation proof baseline stabilizes as count grows
97
+ 4. **Same user approval gate adherence**: Review comment attachment automatic / merge authority is user's own decision
98
+
99
+ ### Limitations (Explicit)
100
+
101
+ - **Accumulated naming baseline adherence materials** = original developer environment accumulated baseline / external user environments should follow their own naming/decision baseline
102
+ - **PR lifecycle operation proof materials + accumulated self-catch** = original developer environment accumulated / external user environments start own PR lifecycle + self-catch accumulation at 0 instances
103
+ - **Hub gate core essence** = cross-applicable to all user environments (baseline integrity + self-monitoring + Layer 6 bidirectional evolution circuit consistency)
104
+ - This skill = original developer environment base + external user environment fallback path coexistence baseline
105
+
106
+ ## §Disable Path
107
+
108
+ Disable Path (Own PRS Priority Environment Baseline)
109
+
110
+ Baseline for disabling this skill in environments where own PRS (pr-reviewer-self) is established. Following Scenario 3 devil-advocate consolidated one-line conclusion — avoiding *"fh-meta risks becoming a circuit that reinjects owner baseline into heavy users via self-reference"*.
111
+
112
+ ### 4 Deactivation Options
113
+
114
+ | Step | Path | Essence |
115
+ |:-:|---|---|
116
+ | 1 | Frontmatter `user-invocable: false` | Skill itself deactivated (manual call only) |
117
+ | 2 | `.claude/settings.json` plugin disable | fh-meta plugin level deactivation (affects other skills too — for this skill only, recommend step 1 or 3) |
118
+ | 3 | Per-skill deactivation | `.claude/settings.json` `skills.disabled` or `.claude/disabled-skills.json` |
119
+ | 4 | Trigger avoidance | Avoid description trigger vocabulary ("Review PR" / "hub review") — use own PRS triggers first |
120
+
121
+ ### Priority Resolution Baseline
122
+
123
+ When own PRS + this skill both activate simultaneously:
124
+
125
+ | Environment | Default priority |
126
+ |---|---|
127
+ | Original developer environment (forge-harness original developer) | **This skill takes priority** (hub gate baseline) |
128
+ | External user environment (own PRS established) | **Own PRS takes priority** (user environment baseline / this skill = supplementary or disabled) |
129
+ | External user environment (own PRS not established) | This skill available (user's decision) |
130
+
131
+ ### Heavy User Autonomy Non-Infringement Baseline
132
+
133
+ - This skill = NOT "a stronger tool" / obligation to avoid infringing user autonomy
134
+ - Catch "owner baseline self-reference reinjecton circuit" risk (following Scenario 3 consolidated conclusion)
135
+ - → Mandatory baseline to explicitly document disable path (ensures user decision space)
136
+
137
+ ## §Persona Synergy Catch
138
+
139
+ Persona Synergy Catch (Scenario 2 adherence)
140
+
141
+ > **Applies only if the `deep-insight` plugin is installed** (it is an optional external plugin, not bundled with FH). If deep-insight is absent, this simultaneous-activation risk cannot arise — skip this entire section. No fallback is needed because there is no collision to resolve.
142
+
143
+ ### deep-insight Multi-Perspective Review ↔ This Skill Simultaneous Activation Risk
144
+
145
+ Scenario 2 persona-newcomer catch — when this skill also activates during deep-insight multi-perspective review, risk of token cost/time explosion. Two skills unaware of each other / cross-ref absent area.
146
+
147
+ ### Simultaneous Activation Resolution
148
+
149
+ When deep-insight + this skill simultaneously trigger → delegate priority decision to user:
150
+ - deep-insight first (full multi-perspective review, this skill supplementary)
151
+ - or this skill first (hub review, deep-insight supplementary)
152
+ - or incompatible (run only one / follow disable path §)
153
+
154
+ ### Cascade Value Areas (Synergy ★★★)
155
+
156
+ - persona-be / persona-fe → plugin-recommender (Spring / Storybook recommendation cascade)
157
+ - harvest-loop → domain persona post-processing (★★ / format conflict catch mandatory)
158
+ - deep-insight multi-perspective review → this skill **sequential** activation (not simultaneous / avoid token cost)
@@ -0,0 +1,207 @@
1
+ ---
2
+ name: install-doctor
3
+ description: Scans the existing environment before and after meta-harness plugin install to diagnose conflicts, duplicates, and silent overwrite risks. Reports potential conflict areas with existing CLAUDE.md, skills, hooks, and audit practices. Activates on "install conflict", "any overlaps?", "is it safe to install?".
4
+ user-invocable: true
5
+ allowed-tools: ["Read", "Bash", "Glob", "Grep"]
6
+ model: sonnet
7
+ category: Composability Gate
8
+ ---
9
+
10
+ # install-doctor — Plugin Install Conflict Diagnosis
11
+
12
+ Diagnoses potential conflicts, duplicates, and overwrite risks that may occur when installing meta-harness plugins into an existing project.
13
+
14
+ **Can be installed standalone** — works correctly with plugin install alone, without cloning the full meta-harness.
15
+
16
+ ## Triggers
17
+
18
+ ```
19
+ /install-doctor # Full diagnosis of current environment
20
+ /install-doctor --plugin fh-meta # Diagnose targeting a specific plugin
21
+ ```
22
+
23
+ ## Step 0. Runtime Environment Requirements Check
24
+
25
+ FH operates on the assumption of a large context window. If the environment is unsuitable, `Input is too long` 400 errors may occur during skill execution.
26
+
27
+ ### Supported Environments
28
+
29
+ | Environment | Support | Notes |
30
+ |---|---|---|
31
+ | Claude Code + Anthropic API Key | ✅ Recommended | 200K context · officially supported |
32
+ | claude.ai Pro / Team Plan | ✅ Recommended | 200K context · officially supported |
33
+ | AWS Bedrock (direct API) | ⚠️ Conditional | Possible with sufficient account quota — default quota may be low |
34
+ | Bedrock + claude-code-router + LiteLLM | ⚠️ Unofficial | Context limit exceeded frequently · not recommended |
35
+ | Internal AI API proxy | ⚠️ Conditional | Depends on max_input_tokens setting |
36
+
37
+ ### Environment Check
38
+
39
+ ```bash
40
+ # Detect community router (Bedrock bypass)
41
+ ls /opt/homebrew/lib/node_modules/@musistudio/ 2>/dev/null \
42
+ && echo "⚠️ claude-code-router detected — routing via Bedrock/external proxy" \
43
+ || echo "✅ No community router"
44
+
45
+ # Claude Code version
46
+ claude --version 2>/dev/null || echo "Claude Code not installed"
47
+ ```
48
+
49
+ **⚠️ When Bedrock routing confirmed**: Request AWS quota increase (TPM/RPM increase) or raise LiteLLM `max_input_tokens`, then retry. Fundamental solution is switching to direct Anthropic API access.
50
+
51
+ ---
52
+
53
+ ## Step 1. Existing Asset Inventory
54
+
55
+ ```bash
56
+ # CLAUDE.md existence
57
+ [ -f "CLAUDE.md" ] && echo "CLAUDE.md exists: $(wc -l < CLAUDE.md) lines" || echo "CLAUDE.md absent"
58
+
59
+ # Existing skills
60
+ ls .claude/skills/ 2>/dev/null && echo "Existing skills present" || echo "No existing skills"
61
+
62
+ # Existing hooks
63
+ [ -f ".claude/settings.json" ] \
64
+ && python3 -c "import json; d=json.load(open('.claude/settings.json')); print('hook events:', list(d.get('hooks',{}).keys()))" \
65
+ || echo "settings.json absent"
66
+
67
+ # .claudeignore
68
+ [ -f ".claudeignore" ] && echo ".claudeignore exists" || echo ".claudeignore absent"
69
+
70
+ # Existing audit/log files
71
+ find . -maxdepth 3 -name "*audit*" -o -name "*weekly*" 2>/dev/null \
72
+ | grep -v "node_modules\|\.git" | head -5
73
+ ```
74
+
75
+ ## Step 2. Conflict Diagnosis (5 Areas)
76
+
77
+ ### 2-1. CLAUDE.md Rule Conflicts
78
+
79
+ ```bash
80
+ grep -i -n "pr\|pull request\|audit\|review\|weekly" CLAUDE.md 2>/dev/null | head -15
81
+ ```
82
+
83
+ Judgment:
84
+ - Existing PR convention present → possible priority conflict with `hub-cc-pr-reviewer` ⚠️
85
+ - Existing weekly audit present → possible format conflict with `harvest-loop` ⚠️
86
+
87
+ ### 2-2. Skill Trigger Conflicts
88
+
89
+ ```bash
90
+ find .claude/skills -name "SKILL.md" 2>/dev/null | while read f; do
91
+ name=$(grep "^name:" "$f" | head -1)
92
+ desc=$(grep "^description:" "$f" | head -1)
93
+ echo "--- $name"
94
+ echo "$desc"
95
+ done
96
+ ```
97
+
98
+ If same trigger vocabulary exists in a meta-harness skill → unclear which skill will activate ⚠️
99
+
100
+ ### 2-3. Hook Event Conflicts
101
+
102
+ ```bash
103
+ [ -f ".claude/settings.json" ] && python3 -c "
104
+ import json
105
+ d = json.load(open('.claude/settings.json'))
106
+ for event, hooks in d.get('hooks', {}).items():
107
+ print(f'{event}: {len(hooks)} hook(s)')
108
+ " || echo "No settings found"
109
+ ```
110
+
111
+ Multiple hooks on same event → execution order unclear ⚠️
112
+
113
+ ### 2-4. .claudeignore Scope Conflicts
114
+
115
+ ```bash
116
+ cat .claudeignore 2>/dev/null | grep -v "^#" | grep -v "^$"
117
+ ```
118
+
119
+ If .claudeignore blocks files that meta-harness skills read for diagnosis (CATALOG.md, tracks/, CLAUDE.md) → inaccurate skill results ⚠️
120
+
121
+ ### 2-5. Audit/Log Practice Conflicts
122
+
123
+ ```bash
124
+ find . -maxdepth 3 \( -name "*audit*" -o -name "*weekly*" -o -name "*retrospect*" \) \
125
+ -not -path "./.git/*" -not -path "./node_modules/*" | head -10
126
+ ```
127
+
128
+ If existing retrospective/audit files exist → `harvest-loop` will create files in separate format → dual management ⚠️
129
+
130
+ ### 2-6. MCP HTTP Transport Security Check
131
+
132
+ ```bash
133
+ # Check MCP server transport settings
134
+ grep -r "\"transport\"" .mcp.json 2>/dev/null | grep -i "http\|sse"
135
+
136
+ # List MCP servers using HTTP transport
137
+ python3 -c "
138
+ import json, sys
139
+ try:
140
+ d = json.load(open('.mcp.json'))
141
+ servers = d.get('mcpServers', {})
142
+ for name, cfg in servers.items():
143
+ t = cfg.get('transport', 'stdio')
144
+ if t != 'stdio':
145
+ print(f' ⚠️ {name}: transport={t}')
146
+ except: pass
147
+ " 2>/dev/null || echo " .mcp.json absent or unparseable"
148
+ ```
149
+
150
+ **Known MCP HTTP transport vulnerability patterns** (based on HTTP port exposure security principles): When MCP servers using HTTP/SSE transport expose ports without authentication, remote access risk within local networks may occur. stdio transport is not affected.
151
+
152
+ | Transport | Risk |
153
+ |---|---|
154
+ | `stdio` (default) | Safe — not subject to vulnerability pattern |
155
+ | `http` / `sse` | ⚠️ Risk if port exposed without authentication — verify firewall rules + access control |
156
+
157
+ **Recommendation**: HTTP transport MCP servers must confirm localhost binding + access control.
158
+
159
+ ## Step 3. Diagnosis Report
160
+
161
+ ```
162
+ ## install-doctor Diagnosis Results
163
+
164
+ ### 🟥 Immediate Action Required
165
+ - [empty if none]
166
+
167
+ ### 🟧 Recommended to Check After Install
168
+ - [empty if none]
169
+
170
+ ### 🟩 No Conflicts
171
+ - [safe confirmed items]
172
+
173
+ ---
174
+ Diagnosis scope: CLAUDE.md rules · Skill triggers · Hook events · .claudeignore · Audit practices
175
+ ```
176
+
177
+ **0 conflicts**: "Plugin install is safe in the current environment."
178
+
179
+ ## Step 4. Layer A Fallback Guidance
180
+
181
+ The meta-harness CLAUDE.md's `## Session Start` Layer A auto-read (CATALOG.md · tracks/ · MEMORY.md) only works in the **meta-harness cwd**.
182
+
183
+ If you installed only the plugin in a different project cwd:
184
+ - Layer A auto-read = silent skip
185
+ - Alternative: Directly add `## Session Start` section to that project's CLAUDE.md, or manually read CATALOG.md
186
+
187
+ ## Activation Triggers
188
+
189
+ | Phrasing pattern | Examples |
190
+ |---|---|
191
+ | **Pre-install check** | "Can I add this plugin?", "Will it conflict with my existing setup?" |
192
+ | **Post-install anomaly** | "Something seems off after install", "Things seem different than before" |
193
+ | **Explicit diagnosis request** | "Check for install conflicts", "Run environment check", "Any overlaps?" |
194
+
195
+ ## Done When
196
+
197
+ ```
198
+ All Steps 1~4 completed
199
+ + Step 3 diagnosis report output (🟥 immediate action / 🟧 check recommended / 🟩 no conflicts)
200
+ + "Plugin install is safe in current environment" confirmed when 0 conflicts
201
+ ```
202
+
203
+ ## Simplification Guard
204
+
205
+ - 0 existing assets (new environment) → output "New environment. No conflicts." and exit immediately in Step 1
206
+ - Scope separation from harness-doctor (harness structure) · context-doctor (token efficiency): this skill = install-time conflict diagnosis only
207
+ - Call `/harness-doctor` for structural checks needed after plugin install