@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.
- package/.claude/agents/challenger.md +169 -0
- package/AGENTS.md +160 -0
- package/CATALOG.md +256 -0
- package/CHEATSHEET.md +367 -0
- package/CLAUDE.md +331 -0
- package/CONTRIBUTING.md +198 -0
- package/LICENSE +21 -0
- package/README.md +131 -418
- package/bin/fh-goal.js +9 -0
- package/bin/fh-run.js +9 -0
- package/docs/banner.png +0 -0
- package/docs/codex-compat.md +123 -0
- package/docs/pillars.svg +70 -0
- package/knowledge/shared/harness-core/fh_integration_contract.md +48 -29
- package/package.json +31 -6
- package/plugins/fh-commons/README.md +37 -0
- package/plugins/fh-commons/agents/quench-challenger.md +373 -0
- package/plugins/fh-commons/skills/convergence-loop/SKILL.md +155 -0
- package/plugins/fh-commons/skills/deliberation/SKILL.md +288 -0
- package/plugins/fh-commons/skills/mcp-circuit-breaker/SKILL.md +196 -0
- package/plugins/fh-commons/skills/token-budget-gate/SKILL.md +175 -0
- package/plugins/fh-meta/agents/fact-checker.md +121 -0
- package/plugins/fh-meta/agents/hub-persona-auditor.md +109 -0
- package/plugins/fh-meta/agents/persona-innovator.md +195 -0
- package/plugins/fh-meta/skills/agent-composer/SKILL.md +461 -0
- package/plugins/fh-meta/skills/agent-composer/SKILL_detail.md +464 -0
- package/plugins/fh-meta/skills/apex-review/SKILL.md +185 -0
- package/plugins/fh-meta/skills/asset-placement-gate/SKILL.md +135 -0
- package/plugins/fh-meta/skills/contention-layer/SKILL.md +127 -0
- package/plugins/fh-meta/skills/context-bridge-dispatch/SKILL.md +30 -0
- package/plugins/fh-meta/skills/context-bridge-dispatch/SKILL_detail.md +144 -0
- package/plugins/fh-meta/skills/context-doctor/SKILL.md +341 -0
- package/plugins/fh-meta/skills/cross-ecosystem-synergy-detection/SKILL.md +202 -0
- package/plugins/fh-meta/skills/deep-clarify/SKILL.md +144 -0
- package/plugins/fh-meta/skills/edit-manifest/SKILL.md +210 -0
- package/plugins/fh-meta/skills/field-harvest/SKILL.md +384 -0
- package/plugins/fh-meta/skills/frontier-digest/SKILL.md +272 -0
- package/plugins/fh-meta/skills/goal-quench/SKILL.md +509 -0
- package/plugins/fh-meta/skills/harness-doctor/SKILL.md +277 -0
- package/plugins/fh-meta/skills/harness-doctor/SKILL_detail.md +484 -0
- package/plugins/fh-meta/skills/harvest-loop/SKILL.md +231 -0
- package/plugins/fh-meta/skills/harvest-loop/SKILL_detail.md +201 -0
- package/plugins/fh-meta/skills/hub-cc-pr-reviewer/SKILL.md +129 -0
- package/plugins/fh-meta/skills/hub-cc-pr-reviewer/SKILL_detail.md +158 -0
- package/plugins/fh-meta/skills/install-doctor/SKILL.md +207 -0
- package/plugins/fh-meta/skills/install-wizard/SKILL.md +613 -0
- package/plugins/fh-meta/skills/marketplace-gate/SKILL.md +193 -0
- package/plugins/fh-meta/skills/memory-hygiene/SKILL.md +143 -0
- package/plugins/fh-meta/skills/meta-prompt-builder/SKILL.md +167 -0
- package/plugins/fh-meta/skills/meta-prompt-builder/SKILL_detail.md +37 -0
- package/plugins/fh-meta/skills/pipeline-conductor/SKILL.md +430 -0
- package/plugins/fh-meta/skills/plugin-recommender/SKILL.md +221 -0
- package/plugins/fh-meta/skills/plugin-recommender/SKILL_detail.md +220 -0
- package/plugins/fh-meta/skills/prompt-regression/SKILL.md +178 -0
- package/plugins/fh-meta/skills/public-surface-audit/SKILL.md +224 -0
- package/plugins/fh-meta/skills/return-path-gate/SKILL.md +257 -0
- package/plugins/fh-meta/skills/self-marketing-lint/SKILL.md +129 -0
- package/plugins/fh-meta/skills/sim-conductor/SKILL.md +364 -0
- package/plugins/fh-meta/skills/sim-conductor/SKILL_detail.md +337 -0
- package/plugins/fh-meta/skills/skill-splitter/SKILL.md +126 -0
- package/plugins/fh-meta/skills/skill-splitter/SKILL_detail.md +185 -0
- package/plugins/fh-meta/skills/source-grounding-audit/SKILL.md +230 -0
- package/plugins/fh-meta/skills/source-grounding-audit/SKILL_detail.md +182 -0
- package/plugins/fh-meta/skills/steel-quench/SKILL.md +226 -0
- package/plugins/fh-meta/skills/steel-quench/SKILL_detail.md +453 -0
- package/plugins/fh-meta/skills/verify-bidirectional/SKILL.md +238 -0
- package/scripts/fh-gate.sh +175 -40
- package/scripts/fh-goal.sh +182 -0
- 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
|