@chrono-meta/fh-gate 2.5.1 โ 2.7.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/rules/fh_4axis_gate.md +26 -3
- package/.claude-plugin/marketplace.json +2 -2
- package/AGENTS.md +24 -3
- package/CATALOG.md +41 -0
- package/CLAUDE.md +77 -15
- package/README.ja.md +36 -11
- package/README.ko.md +36 -11
- package/README.md +116 -18
- package/README.zh.md +32 -11
- package/docs/USER_GUIDE.md +118 -0
- package/docs/platform_sustainability.md +174 -0
- package/knowledge/shared/GLOSSARY.md +26 -1
- package/knowledge/shared/harness-core/fh_detail_protocols.md +44 -2
- package/knowledge/shared/harness-core/field_verdict_crossfamily_gate.md +19 -5
- package/knowledge/shared/harness-core/harness_incubator_doctrine.md +129 -2
- package/knowledge/shared/harness-core/multi_model_sidecar_strategy.md +32 -0
- package/knowledge/shared/harness-core/ship_readiness_gate.md +77 -8
- package/knowledge/shared/learnings/subagent_invocations_log.yaml +110 -0
- package/knowledge/shared/rules/knowledge_layer_seam.md +1 -1
- package/package.json +17 -3
- package/plugins/fh-commons/.claude-plugin/plugin.json +1 -1
- package/plugins/fh-meta/.claude-plugin/plugin.json +1 -1
- package/plugins/fh-meta/CHANGELOG.md +136 -0
- package/plugins/fh-meta/agents/persona-innovator.md +170 -0
- package/plugins/fh-meta/skills/auto-decorrelation/SKILL.md +44 -0
- package/plugins/fh-meta/skills/fh/SKILL.md +31 -0
- package/plugins/fh-meta/skills/goal-quench/SKILL_detail.md +1 -1
- package/plugins/fh-meta/skills/harness-doctor/SKILL.md +7 -1
- package/plugins/fh-meta/skills/harvest-loop/SKILL.md +32 -0
- package/plugins/fh-meta/skills/public-surface-audit/SKILL_detail.md +16 -1
- package/plugins/fh-meta/skills/steel-quench/SKILL.md +97 -0
- package/scripts/adapters/fixtures/mate_agent_boundary_known_negative.md +31 -0
- package/scripts/adapters/fixtures/mate_agent_boundary_known_positive.md +56 -0
- package/scripts/adapters/peer_resolve.sh +58 -6
- package/scripts/cluster_capability_scan.sh +60 -18
- package/scripts/digest_landing_check.sh +181 -10
- package/scripts/fh_hub_identity.sh +83 -0
- package/scripts/fh_session_load.sh +53 -5
- package/scripts/fh_track_resolve.sh +114 -0
- package/scripts/field_canon_preload.sh +50 -5
- package/scripts/package_coverage_check.sh +17 -0
- package/scripts/prior_art_prompt.sh +168 -0
- package/scripts/psa_scan_lib.sh +201 -15
- package/scripts/residency_admission_check.sh +204 -0
- package/scripts/selfcheck.sh +117 -1
- package/scripts/test_adapter_lanes.sh +67 -2
- package/scripts/test_heavy_classifier_lanes.sh +144 -0
- package/scripts/test_marker_defense_lanes.sh +152 -0
- package/scripts/test_marker_soul_check_lanes.sh +211 -0
- package/scripts/test_prior_art_prompt_lanes.sh +128 -0
- package/scripts/test_psa_singlefile_lanes.sh +351 -1
- package/scripts/test_residency_admission_lanes.sh +60 -0
- package/scripts/test_track_resolve_lanes.sh +158 -0
- package/templates/.git-hooks/pre-commit +400 -4
- package/templates/.git-hooks/pre-push +17 -2
- package/templates/settings.PriorArt.snippet.json +15 -0
- package/scripts/test_satellite_publish_gate_lanes.sh +0 -339
|
@@ -90,7 +90,12 @@ Identity marker: every greeting response opens with **๐ฟ๏ธ then an identity-r
|
|
|
90
90
|
**Branch test (mechanical โ local state only)**: returning = session files exist (any `tracks/**/session_*.md` or `tracks/_meta/*.md` beyond `.gitkeep`) **OR** mapped project tracks exist (`tracks/{name}/` dirs โ **any underscore-prefixed dir doesn't count** (`tracks/_*`, general rule not a closed list: `_meta`/`_audit`/`_contrib`/`_chamber`โฆ); covers mapped-but-not-yet-synced users). **Never infer the branch from git log or CATALOG residue** โ a fresh clone carries full commit history but zero session files: it is a NEW install (origin: fresh-clone sonnet sim rendered the returning menu off commit messages, `fh_signal_2026-06-11` FP8).
|
|
91
91
|
|
|
92
92
|
**New user** (neither condition holds โ fresh clone/install): 2-door starter, never the returning menu โ
|
|
93
|
-
> ๐ฟ๏ธ **Welcome to FH.** *Looks like you're new here!
|
|
93
|
+
> ๐ฟ๏ธ **Welcome to FH.** *Looks like you're new here! What would you like to do?*
|
|
94
|
+
> - **โ Create your first project** โ guided
|
|
95
|
+
> - **โก Map an existing project**
|
|
96
|
+
> - **๐ Read the guide / ask me anything**
|
|
97
|
+
>
|
|
98
|
+
> *โฆand I can run `/install-wizard` to finish initial setup.*
|
|
94
99
|
|
|
95
100
|
- **โ Create your first project** โ Step 3-0 (guided: name โ `tracks/` โ `.claudeignore` โ cascade)
|
|
96
101
|
- **โก Map an existing project** โ `auto_project_mapping.md`; after a successful mapping, offer the ยง6 Full-Harness promotion prompt
|
|
@@ -100,8 +105,33 @@ Identity marker: every greeting response opens with **๐ฟ๏ธ then an identity-r
|
|
|
100
105
|
> ๐ฟ๏ธ **Welcome to FH.** *forge-harness is a tool hub for rapidly setting up Claude Code projects. It supports plugin recommendations, project setup, and harness diagnostics. What would you like to work on?*
|
|
101
106
|
|
|
102
107
|
**Returning user** (branch test above) โ open with the fixed 4-door menu (the doors are stable; the contents are composed live). A summary copy lives in CLAUDE.md ยงActive Onboarding โ keep branch tests and door labels in sync when editing:
|
|
103
|
-
> ๐ฟ๏ธ **Welcome back to FH.** *What would you like to start
|
|
108
|
+
> ๐ฟ๏ธ **Welcome back to FH.** *What would you like to start?*
|
|
109
|
+
> - **โ Map a project**
|
|
110
|
+
> - **โก Create a new project**
|
|
111
|
+
> - **โข Accelerate or diagnose a mapped project** (work ยท Full-Harness ยท skills/agents/plugins ยท ์ง๋จ) โ {field candidates}
|
|
112
|
+
> - **โฃ Cross-project synergy**
|
|
113
|
+
> - **๐ Guide / Q&A**
|
|
104
114
|
>
|
|
115
|
+
๐ฅ **One door per line โ never join them with `ยท` into a single run-on line** (operator, 2026-08-20).
|
|
116
|
+
A `ยท`-joined menu wraps at an arbitrary terminal width, so the reader cannot see where one door ends
|
|
117
|
+
and the next begins. The vertical list satisfies **G-GREET-02** (๐ฟ๏ธ + welcome on the SAME line),
|
|
118
|
+
**G-GREET-03** (fixed 4-door set) and **G-GREET-05** (welcome literals) unchanged โ those probes pin
|
|
119
|
+
the door *set*, the *literals*, and the *welcome line*, **not the menu's line count**. Layout is the
|
|
120
|
+
render layer; the probes are the verdict layer. The ๐ง developer door is likewise its own row at the
|
|
121
|
+
bottom of the list, never appended to another line.
|
|
122
|
+
|
|
123
|
+
**๐ door (unnumbered, always rendered)** โ opens `docs/USER_GUIDE.md` and takes FH-usage questions.
|
|
124
|
+
๐ฅ **Do not renumber.** โ โโฃ are the fixed set; ๐ง was the only unnumbered exception and ๐ joins it at
|
|
125
|
+
that layer. A guide is *reference before work*, not *the start of work*, so it does not belong in the
|
|
126
|
+
numbered set. **G-GREET-03 (fixed 4-door) and G-GREET-05 (welcome literals) both stay satisfied** โ no
|
|
127
|
+
number was added and no welcome phrase was touched.
|
|
128
|
+
๐ฅ **"Open" means path + a 3-line table of contents FIRST.** Never dump the file inline โ burning tokens
|
|
129
|
+
every session is precisely what this door exists to avoid. Then, and only then, branch on `uname -s`
|
|
130
|
+
to *suggest* an opener (Darwinโ`open` ยท Linuxโ`xdg-open` ยท MINGW/MSYSโ`start`); if none exists, skip
|
|
131
|
+
silently โ the path already landed, so nothing is lost. โ ๏ธ `open` is macOS-only and FH ships via npm,
|
|
132
|
+
so it must never be the default path. Operating detail (allowed corpus ยท say "not found" when absent)
|
|
133
|
+
lives in `/fh` Step 3.5.
|
|
134
|
+
|
|
105
135
|
> (When **FH-dev state exists** โ the operator โ the welcome line is **"The FH operator โ good to see you."** in place of "Welcome back to FH.")
|
|
106
136
|
|
|
107
137
|
- **โ Map a project** โ routes to `auto_project_mapping.md`; after a successful mapping, offer the ยง6 Full-Harness promotion prompt
|
|
@@ -170,6 +200,18 @@ priority: high|medium|low
|
|
|
170
200
|
---
|
|
171
201
|
# FH Improvement Signal โ {date} ({source})
|
|
172
202
|
|
|
203
|
+
## Session Retrospective โ ๋ง๊ฐ ํ๊ณ ๋ก ์์ฑ๋ ์ ํธ๋ง. ์ํ 8์ค. ์ด๋ฒคํธ ์ ํธ๋ ์ด ์ ์์
|
|
204
|
+
- ์ ์ : {์ด์์๊ฐ ๋๋ฅผ ์ ์ ํ ๊ฑด์} โ ๊ฐ ํ ์ค, ๋ฌด์์ ์ด๋ป๊ฒ ํ๋ ธ๋
|
|
205
|
+
- ์๋ ฅ {N} / ํ๋ ฅ {M} โ ํ๋ ฅ์ **์ก์ ์ถ ์ด๋ฆ**์ผ๋ก (๋ ์ธ ยท ๋๋๋ฆผ ยท cross-family ยท ์ฒซ์ค์ฌ์ฉ ยท โ ยท ์ด์์ ยท CI)
|
|
206
|
+
- ์ ๋๋ฆฐ ์ถ: {์ด๋ฆ, ๋๋ ใ์์ใ}
|
|
207
|
+
- ๋ฐ๋ณต: {์ด๋ฒ์ด N๋ฒ์งธ์ธ ์ค์ โ memory ํค ๋๋ ใ์ ๊ทใ}
|
|
208
|
+
|
|
209
|
+
๐ฅ **๋ฑ๊ธ์ ์ ์ง ๋ง๋ผ.** ยซ์ธ์
์ด ์ ๋๋ค/๋ชป ๋๋คยป ๋ ์ํ์ด๊ณ ๊ฒ์ ๊ฐ๋ฅํ๋ค. ์ ๋ ๊ฒ์ **์ฌ๊ฑด๊ณผ
|
|
210
|
+
๊ทธ๊ฒ์ ์ก์ ์ถ์ ์ด๋ฆ**๋ฟ์ด๋ค. ํ์ ์ ์ ์ ์ผ๋ฉด ์ํํ ๋์์ด ์๋ค. ใ์ ์ ๊ฑด์ใ๋ ํธ๋์คํฌ๋ฆฝํธ
|
|
211
|
+
์ฌ์ค์ด์ง ํ๋จ์ด ์๋๋ผ์ ๊ฒ์์ด ์ด๋ ต๊ณ , ์๋ ฅ/ํ๋ ฅ ๋ถ๋ฆฌ๋ ยซ๋ด๊ฐ ๋ค ์ก์๋คยป ๋ฅผ ์ฐ๊ธฐ ๋ถํธํ๊ฒ ๋ง๋ ๋ค.
|
|
212
|
+
โ ๏ธ ์
๋ค ์ํ์ **์ด๋ ต๊ฒ** ํ ๋ฟ **๋ซ์ง ์๋๋ค** โ ๋ซํ๋ ๊ฒ์ peer ๋ cross-family ๊ฐ ์ด ํ๊ณ ๋ฅผ
|
|
213
|
+
์ฝ์ ๋์ด๊ณ ๊ทธ๊ฑด ์ด ํ์์ ๋ฒ์ ๋ฐ์ด๋ค.
|
|
214
|
+
|
|
173
215
|
## Friction Point
|
|
174
216
|
-
|
|
175
217
|
|
|
@@ -469,11 +469,25 @@ own. `tier2b` is the honest reachable rung for that pairing; do not inflate a `t
|
|
|
469
469
|
`tier3`, and do not undersell it to `tier2` either โ it is a distinct, real, if operator-correlated,
|
|
470
470
|
data point.
|
|
471
471
|
|
|
472
|
-
**Mechanization status โ
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
472
|
+
**Mechanization status โ ๐ฅ CORRECTED 2026-08-20.** This paragraph used to say `standpoint:` was
|
|
473
|
+
"prose-only today" with "**no value-enum validation and no fixture suite**". **Both halves are false**
|
|
474
|
+
and had been for a while: `validate_standpoint_leg()` lives in `templates/.git-hooks/pre-commit` and
|
|
475
|
+
`scripts/test_marker_standpoint_lanes.sh` is wired through `scripts/selfcheck.sh`. Measured by varying
|
|
476
|
+
one variable at a time โ `banana(qasp)` โ **blocked (enum)** ยท `tier2` without parens โ **blocked
|
|
477
|
+
(enum)** ยท `tier2(qasp)` with no execution grounds โ **passes with a warning** ยท with grounds โ
|
|
478
|
+
**passes**.
|
|
479
|
+
|
|
480
|
+
**What is actually true, stated at the right width**: the enum IS closed and enforced; the `tier2`+
|
|
481
|
+
execution grounds are **advisory** (a thin `tier2` records and warns, it does not block); and nothing
|
|
482
|
+
checks whether the recorded value is *true*. The old sentence collapsed all three into "no validation",
|
|
483
|
+
which suppresses use of a control that exists โ the quietest kind of drift, because it reads as
|
|
484
|
+
honest modesty.
|
|
485
|
+
|
|
486
|
+
๐ฅ **This same false claim stood in FIVE places** (`CLAUDE.md` ร2, `.claude/rules/fh_4axis_gate.md`,
|
|
487
|
+
`AGENTS.md`, here). The first repair fixed one; the second fixed three and still missed this file and
|
|
488
|
+
over-stated the fix. Both misses were surfaced by a **different-family reviewer**, not by a lane and
|
|
489
|
+
not by the author โ there is still no check that compares a rule's self-description against the
|
|
490
|
+
machinery it describes.
|
|
477
491
|
|
|
478
492
|
๐ฅ **Two sentences that stood here were STALE and are corrected (2026-08-17, re-measured โ a
|
|
479
493
|
cross-family reviewer flagged the second, the first fell out of checking it).** They read
|
|
@@ -331,8 +331,18 @@ by design. ~~**Therefore a meta-harness candidate is not a chamber candidate.**~
|
|
|
331
331
|
day-one walk ์ ์ ์๋ *"on the first run, with the user adding nothing, the thing produces
|
|
332
332
|
something useful"* ์ด๊ณ ๋ฐ๋๋ง์ด `built-but-not-wired`, ๊ทธ๋ฆฌ๊ณ *"**wiring is part of the birth**"*
|
|
333
333
|
๋ค. **md ๊ท์จ์ ๊ตฌ์กฐ์ ์ผ๋ก ํธ์ถ๋ถ๊ฐ ์๋ค**(์ด๋ฆฌ์ธ์ค). ์ค์ ๋ฐ๋ก:
|
|
334
|
-
`.claude/rules/fh_4axis_gate.md` ์ `standpoint:` ํ๋ โ *"Still validated by nothing โ
|
|
335
|
-
lines, no fixture suite"*
|
|
334
|
+
`.claude/rules/fh_4axis_gate.md` ์ `standpoint:` ํ๋ โ ๊ทธ ๊ท์จ์ด *"Still validated by nothing โ
|
|
335
|
+
zero hook lines, no fixture suite"* ๋ผ๊ณ **์๊ธฐ ์์ ์ ๋ํด** ์ ๊ณ ์์๋ค.
|
|
336
|
+
๐ฅ **2026-08-20 ์ ์ โ ์ด ์์๋ ์ธ์ฉํ ๋ฌธ์ฅ์ด ํ๋ ธ๋ค๋ ๊ฒ์ด ๋ฐํ์ ธ ๋ฐฉํฅ์ด ๋ฐ๋๋ค.** ์ค์ธก: ๊ทธ ์์ ์
|
|
337
|
+
`validate_standpoint_leg()` ๋ ํ
์ **์์๊ณ ** ํฝ์ค์ฒ๋ `selfcheck.sh` ๋ก ๋ฐฐ์ ๋ผ ์์๋ค
|
|
338
|
+
(`banana(qasp)` โ ์ฐจ๋จ ยท `tier2` ๊ดํธ ์์ โ ์ฐจ๋จ). ์ฆ ์ด๊ฑด ยซํ์ด๋ฌ๋๋ฐ ์ ๊ฑธ์ ๊ท์จยป์ด ์๋๋ผ
|
|
339
|
+
**ยซ๊ฑท๊ณ ์๋๋ฐ ์๊ธฐ๊ฐ ๋ชป ๊ฑท๋๋ค๊ณ ์ ์ด๋ ๊ท์จยป**์ด๋ค โ ๊ทธ๋ฆฌ๊ณ ๊ทธ๊ฒ ๋ ์กฐ์ฉํ ๊ฒฐํจ์ด๋ค: ์ ์งํ
|
|
340
|
+
๊ฒธ์์ฒ๋ผ ์ฝํ๋ฉด์ **์ด๋ฏธ ์๋ ์ปจํธ๋กค์ ์ฌ์ฉ์ ์ต์ **ํ๊ณ , ์ค์ ๋ก ๊ทธ ๋ฌธ์ฅ์ **์ฌ์ฏ ๊ฐ ๋ฌธ์๋ก
|
|
341
|
+
์ ํ๋ผ** ์์๋ค(`CLAUDE.md` ร2 ยท ๊ทธ ๊ท์น ํ์ผ ยท `AGENTS.md` ยท `field_verdict_crossfamily_gate.md` ยท
|
|
342
|
+
์ฌ๊ธฐ). โ md ๊ท์จ์ ์คํจ ๋ชจ๋๋ **ํ๋๊ฐ ์๋๋ผ ๋**์ด๋ค:
|
|
343
|
+
โ ํ์ด๋๊ณ ์ ๊ฑท๋๋ค(ํธ์ถ๋ถ ๋ถ์ฌ) โก **๊ฑท๋๋ฐ ์๊ธฐ ์ํ๋ฅผ ํ๋ฆฌ๊ฒ ์ ๋๋ค**(์๊ธฐ์์ ๋๋ฆฌํํธ).
|
|
344
|
+
โก๋ โ ์ ํ์ ์(ยซ๋ธ๋ผ์ธ๋ sim ์ด ๋ฐํํ๋๊ฐยป)๋ก๋ ์ ์กํ๋ค โ ๊ท์จ์ ์ ์ ๋ฐํํ๊ณ , ํ๋ฆฐ ๊ฒ์
|
|
345
|
+
๊ทธ ๊ท์จ์ด ์๊ธฐ์ ๋ํด ํ๋ **์ง์ **์ด๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๊ฑธ ์ก๋ ๊ฒ์ฌ๋ ์์ง ์๋ค.
|
|
336
346
|
`axes-run` ๊ธฐํธ ํค๋ 53๊ฑด ์ค 2๊ฑด์ด ์ ์๋ฏธ๋ก ์ฐ์๋ค. **ํ์ด๋ฌ๊ณ ์ ๊ฑธ์ md ๊ท์จ๋ค**์ด๋ค.
|
|
337
347
|
|
|
338
348
|
โ **์ ๋ ํด๋์ค๋ณ day-one walk ํ์ ์๋ฅผ ๋ฐ๋ก ๊ฑด๋ค**:
|
|
@@ -530,6 +540,123 @@ ceiling will never propose the redesign that was the point of incubating.
|
|
|
530
540
|
*nursery* is allowed to do to it while it is still inside. The first is an exit condition; the second
|
|
531
541
|
is a working posture.
|
|
532
542
|
|
|
543
|
+
### 3-e. Two moves observed in one incubation session โ ยซ์ฑ์ด๋คยป is not the whole job (operator-approved, 2026-08-19)
|
|
544
|
+
|
|
545
|
+
โ ๏ธ **Scope, up front**: this section records a **failure taxonomy measured on one field harness in
|
|
546
|
+
one session**, and the move it names. It is **not** a claim about what incubation essentially *is*.
|
|
547
|
+
A cross-family review of the first draft killed that framing, and it was right to
|
|
548
|
+
(ยง3-e-PROVENANCE below).
|
|
549
|
+
|
|
550
|
+
Operator's framing going in: *"qasp๊ฐ ์์ง ๋จ์ ์ ๋ค์ด ์์ผ๋ fh๋ pmh์ ์ธํ๋ฒ ์ดํ
๋ชจ๋๋ก
|
|
551
|
+
์ฌ์ฉ์(pmh๊ฐ ์ค์๊ฐ ๊ฒ์ฆ ๋ฐ ๋ณด๊ฐ)์๋ ๋ถ์กฑํ ์ ์ ๋ฉ๊พธ์ด์ ์๋ํ ๊ธฐ๋ฅ๋ค์ด โฆ ๋ฐํ ๊ฐ๋ฅํ
|
|
552
|
+
์ํ๋ค์ด๋ผ๊ณ ๋๋ ๋ณด๊ณ ์์ด. ์ธํ๋ฒ ์ดํฐ ๊ธฐ๋ฅ์ ํ์ฅ์ด์ง."*
|
|
553
|
+
|
|
554
|
+
That holds **for the class of gap it names**. The session then measured a class outside it:
|
|
555
|
+
|
|
556
|
+
| | |
|
|
557
|
+
|---|---|
|
|
558
|
+
| โ **์ฑ์ด๋ค** | The target **declares** it cannot do something โ `UNCALIBRATED`, an unwired slot, a domain lock. The incubator supplies the capability at more tokens, more time. |
|
|
559
|
+
| โก **์ ์ธ๋๊ฒ ๋ง๋ ๋ค** | The target produces **plausible output that is wrong**. โ has nothing to grab. The move here is to *manufacture the declaration* โ or, more often than expected, **to move an existing declaration into the path someone reads.** |
|
|
560
|
+
|
|
561
|
+
#### ๐ฅ The five cases split three ways โ and the first draft got this wrong
|
|
562
|
+
|
|
563
|
+
The draft asserted *"none of the five signals a shortfall upstream."* **That is false, and the
|
|
564
|
+
falsification came from this repo's own artifacts** (cross-family review flagged it; source check
|
|
565
|
+
confirmed and went further than the reviewer did):
|
|
566
|
+
|
|
567
|
+
```
|
|
568
|
+
์ง์ง ๋ฌด์ โ ์ฑ๋์ด ์์๋ค "๋ฉด์ "ยท"๋ฌด๋ฃ" ์๊ธฐ์ต์ 2๊ฑด
|
|
569
|
+
(scanner did not exist until the session built it)
|
|
570
|
+
์ ํธ๋ ์๋๋ฐ ์ ์ฝํ๋ค ๋ผ์ฐํ
๊ณ ์ โ caller_zero_baseline.json ์ด 2๊ฑด
|
|
571
|
+
ORPHAN ์ผ๋ก ๊ธฐ๋ก ์ค์ด์๋ค(tracked ยท CI ๊ฐ ์ฝ๋๋ค)
|
|
572
|
+
ํธ๋์คํ โ ์ ํ ๋ฌธ์๊ฐ "ํ์์ด ๊ฐฑ์ ๋ณธ" ์ด๋ผ๋
|
|
573
|
+
ํฌ์ธํฐ๋ฅผ ๋จ๊ฒผ๊ณ , ๊ทธ ํ์์ด ์นจ๋ฌตํ๋ค
|
|
574
|
+
์ฑ๋์ ๋ง๋ค์๋๋ ์ ์ธ๋๋ค p6 ๋ถ๋ฅํ 0/6 โ `_UNMAPPED_SEEN` ๊ด์ธก ์ฑ๋์ด 1๊ฑด
|
|
575
|
+
ํ๋ฃจ ์ ์ปค๋ฐ์ผ๋ก ๋์
๋ผ ๋ฆฌํฌํธ๊น์ง ๋ฐฐ์ ๋๊ณ ,
|
|
576
|
+
๊ทธ ๋ค์ ๋ ์๋ฆฌ๋๋ค
|
|
577
|
+
```
|
|
578
|
+
|
|
579
|
+
**The third row is the load-bearing one, and the draft had it backwards** โ it cited p6 as an example
|
|
580
|
+
of silence when p6 is the **existence proof of โก succeeding**: someone built the channel, the silent
|
|
581
|
+
thing declared itself, โ closed it the next day. One case, one day apart, in-repo.
|
|
582
|
+
|
|
583
|
+
โ So โก is not one move but two, and the second is more common than expected:
|
|
584
|
+
|
|
585
|
+
- **(a) build the channel where none exists** โ the 2 self-suppression cases
|
|
586
|
+
- **(b) put the channel where the reader is** โ the 2 unread-signal cases. This is
|
|
587
|
+
`gate_locality_principle.md` applied to *declarations* rather than to gates: a declaration nobody
|
|
588
|
+
reads is not a declaration. **Neither of those two was fixed by adding information; both were fixed
|
|
589
|
+
by moving where it surfaces.**
|
|
590
|
+
|
|
591
|
+
#### What was actually built, stated narrowly
|
|
592
|
+
|
|
593
|
+
Function โก was realized on that session as **authoring-time static instruments** โ
|
|
594
|
+
`scripts/self_suppression_scan.py` (trigger vocabulary swallowed by negation vocabulary),
|
|
595
|
+
`scripts/domain_coupling_scan.py` (hardcoded domain vocabulary), plus anchors that go red when the
|
|
596
|
+
instrument itself dies.
|
|
597
|
+
|
|
598
|
+
๐ฅ **This is not a runtime declaration mechanism and must not be read as one.** Nothing there makes a
|
|
599
|
+
*running* audit announce ยซthis output is confidently wrongยป. What was demonstrated: **an incubator
|
|
600
|
+
holding ยง3-d's whole-repo authority built instruments the target had not built for itself.** Whether
|
|
601
|
+
the target *could* have is not established โ the observed reason was ordinary (nobody had looked),
|
|
602
|
+
not structural.
|
|
603
|
+
|
|
604
|
+
#### Ordering: conditional, not a law
|
|
605
|
+
|
|
606
|
+
The draft said *"โก is prior to โ "*. Weakened deliberately: **where a defect is undeclared, โ has no
|
|
607
|
+
target, so โก has to come first for that defect.** That is a statement about one defect's handling
|
|
608
|
+
order, not a phase ordering for incubation, and one session cannot support the stronger reading.
|
|
609
|
+
|
|
610
|
+
Likewise the draft's *"the second is worse than the first"* (silent-wrong vs crash) is **withdrawn** โ
|
|
611
|
+
severity depends on the operating context, and nothing here measured it.
|
|
612
|
+
|
|
613
|
+
#### ๐ฅ โก presupposes decorrelated input โ this belongs in the definition, not the caveats
|
|
614
|
+
|
|
615
|
+
Self-detection on that session was **2 of 16**, and both of the two were *reading something already
|
|
616
|
+
written down* (a baseline file that said `ORPHAN`; a loop that finished suspiciously fast), not
|
|
617
|
+
inference. The rest came from cross-family review (two families, zero overlap), revert probes, the
|
|
618
|
+
full suite, a caller-zero ratchet, a peer session, and a company session.
|
|
619
|
+
|
|
620
|
+
โ **โก as described is a property of an incubation regime that has decorrelated review attached, not
|
|
621
|
+
of a lone incubation session.** A single session should not be assumed able to run it.
|
|
622
|
+
|
|
623
|
+
๐ฅ **And ยซdecorrelatedยป is decided by what you SEND, not by which family you send it to.** A panel
|
|
624
|
+
that all receives the same payload keeps the same blind spot no matter how many reviewers sign it.
|
|
625
|
+
The payload for โก is **the frozen diff *and* the change's own marker** โ the diff carries the code,
|
|
626
|
+
the marker carries the *claims* (which axes ran, which controls were alive, what residual is
|
|
627
|
+
admitted). A reviewer who never sees the marker cannot catch ยซan axis asserted with no traceยป or
|
|
628
|
+
ยซa residual implied but unlistedยป, because those defects are not in the code.
|
|
629
|
+
|
|
630
|
+
**Measured on this section itself, the same day**: the grounding arm was sent a **5-item fact list**
|
|
631
|
+
instead of repo access, and consequently reported every well-grounded statement outside that list as
|
|
632
|
+
invention โ one usable finding out of six. The family was fine; **the payload was the defect.**
|
|
633
|
+
โ [[feedback_decorrelation_axis_is_what_you_send]]. The plumbing that supplies this is
|
|
634
|
+
`auto-decorrelation` Step 5 (payload = frozen diff + marker), scoped to **consistency**, not honesty
|
|
635
|
+
โ asking whether the record matches the diff is a channel check; asking whether the record is *true*
|
|
636
|
+
is a verdict, and ยงMechanization Boundary keeps verdicts out of code.
|
|
637
|
+
|
|
638
|
+
#### The failure mode โก carries
|
|
639
|
+
|
|
640
|
+
The instruments were wrong **seven times** in that session. Six produced **plausible wrong numbers**;
|
|
641
|
+
one died loudly (`No such file`, `rc=1`) and was caught instantly. Once, a control was the only thing
|
|
642
|
+
standing between ยซthe corpus has none of this shapeยป and the truth, ยซthe detection surface does not
|
|
643
|
+
see that shapeยป.
|
|
644
|
+
|
|
645
|
+
โ **An instrument built to expose silent wrongness is itself a source of silent wrongness.** The
|
|
646
|
+
prescription measured there: **put the control in the same commit as the instrument.** Where that was
|
|
647
|
+
done the error surfaced immediately; where it was not, it surfaced afterwards, if at all.
|
|
648
|
+
|
|
649
|
+
#### ยง3-e-PROVENANCE โ what this section's own review caught
|
|
650
|
+
|
|
651
|
+
- **cross-family (codex, gpt-5.5)**: killed the ยซessence of incubationยป framing, the
|
|
652
|
+
ยซnone of the fiveยป claim, the ยซprior toยป ordering, and the ยซworse thanยป severity rule. All four
|
|
653
|
+
were adopted. Self-detection on this section: **0**.
|
|
654
|
+
- **grounding pass (agy, gemini-3.1-pro)**: mostly measured **the author's own dispatch error** โ it
|
|
655
|
+
was given a 5-item fact list rather than repo access, so every well-grounded statement outside that
|
|
656
|
+
list was reported as invention. One finding survived: *"all of them wrong"* overstated p6
|
|
657
|
+
(a finding whose true category happened to be the fallback would not be wrong), now softened.
|
|
658
|
+
๐ฅ Recorded because the lesson is about **the reviewer's input scope**, not about the reviewer.
|
|
659
|
+
|
|
533
660
|
## 4. Compose โช disrupt โ two operating modes over other harnesses
|
|
534
661
|
|
|
535
662
|
| Mode | What | FH mechanism |
|
|
@@ -149,6 +149,38 @@ human-review floor is structural, not a transitional patch. (Its Faros AI number
|
|
|
149
149
|
the author's own caveat travels with any citation.)
|
|
150
150
|
"Aggressive" Codex/Gemini use is bounded by the fit task-class above, never a blanket main-seat swap.
|
|
151
151
|
|
|
152
|
+
### Write authority โ a sidecar audits, it does not edit (measured 2026-08-21)
|
|
153
|
+
|
|
154
|
+
The doctrine above governs **verdicts**: a sidecar's finding is an evidence candidate until the governor
|
|
155
|
+
source-closes it. That is the *judgment* axis. It says nothing about the **write** axis, and the gap is
|
|
156
|
+
not academic โ a sidecar with tool access will start editing the target tree unless told not to.
|
|
157
|
+
|
|
158
|
+
> **A sidecar returns findings and, at most, a proposed patch as TEXT. It does not write to the target
|
|
159
|
+
> tree.** The governor applies, or does not apply, each change. Same shape as the verdict rule: the
|
|
160
|
+
> sidecar supplies material, the governor is the only writer.
|
|
161
|
+
|
|
162
|
+
๐ฅ **The reason is not overreach. It is that the fixer and the checker become the same party.**
|
|
163
|
+
Measured this day: `codex/gpt-5.5` was dispatched as an adversarial auditor over a hook delta and began
|
|
164
|
+
editing the working tree directly (caught by `mtime`, not by any gate). Its *finding* was real and sharp
|
|
165
|
+
โ two detectors in the same file had divergent leniency. Its *fix* widened one detector's pattern, and
|
|
166
|
+
the widened pattern then matched **the claim line's own text** as its own evidence โ a self-referential
|
|
167
|
+
false positive that flipped a BLOCK lane to PASS. **41 lanes stayed green.** A human reading the diff
|
|
168
|
+
sees "leniency aligned", which is correct as far as it goes. What caught it was the first real use in an
|
|
169
|
+
isolated clone. This is [[feedback_blind_separation_is_a_defect_generator]] arriving through a door the
|
|
170
|
+
verdict rule left open: the sidecar was, for those minutes, both author and reviewer of the same lines.
|
|
171
|
+
|
|
172
|
+
**Operationally**: dispatch sidecars with the target tree read-only where the runtime supports it; when it
|
|
173
|
+
does not, state the constraint in the prompt AND verify afterwards (`git status` / `mtime` on the files you
|
|
174
|
+
handed over). A sidecar edit discovered after the fact is treated as a **finding to re-derive**, never as a
|
|
175
|
+
patch to keep โ re-decide it in the governor's seat, because a patch you did not author is a patch you did
|
|
176
|
+
not review.
|
|
177
|
+
|
|
178
|
+
โ ๏ธ **Process safety, same surface**: terminating a runaway sidecar needs a discriminator for *your own*
|
|
179
|
+
process โ pin the model, capture the PID, or `pgrep` first. A bare `pkill -f codex` on a shared machine
|
|
180
|
+
reaches other sessions' sidecars; measured the same day (nothing was actually killed โ exit codes
|
|
181
|
+
separated the cases afterwards โ but the command could not have known that in advance). **Confirm what
|
|
182
|
+
died after killing**, not before.
|
|
183
|
+
|
|
152
184
|
### Decorrelation axes โ model family AND authoring context (measured 2026-08-01)
|
|
153
185
|
|
|
154
186
|
Decorrelation has been treated as one axis (model family). A codex-outage session measured a second,
|
|
@@ -28,7 +28,7 @@ our own tests pass" โ a real and reportable milestone, and *still* short of th
|
|
|
28
28
|
is authored by the same party it tests. The boundary is the one named in
|
|
29
29
|
`[[feedback_adversarial_review_not_substitute_for_first_use]]`: **passing your own tests is not firing in
|
|
30
30
|
the real situation**, and the first real use is repeatedly what invalidates the design. So RC never opens
|
|
31
|
-
|
|
31
|
+
an `identity-v1.0.0`; only REALIZED does.
|
|
32
32
|
|
|
33
33
|
> The origin note (2026-08-08 session card) drew this ladder with RC and REALIZED **both** marked ๐ข. That
|
|
34
34
|
> shorthand is fine in a card and breaks here: this gate's rule reads literally as "every identity ๐ข โ
|
|
@@ -109,19 +109,65 @@ Score with the same triangulation the 2026-07-14 audit used โ no single-source
|
|
|
109
109
|
novice-vocabulary intents, scored on whether the right skill/gate fires. Salience-only โ measured.
|
|
110
110
|
|
|
111
111
|
## Versioning policy โ the formal release track
|
|
112
|
-
The formal release tag is **independent of the npm package version**. The npm version (
|
|
113
|
-
`1.4.x`
|
|
112
|
+
The formal release tag is **independent of the npm package version**. The npm version (**2.6.0** as of
|
|
113
|
+
2026-08-21; โ ๏ธ this parenthetical said `1.4.x` until then โ a version number written into prose goes
|
|
114
|
+
stale silently and reads as fact, so verify it against `package.json` before citing) is the
|
|
115
|
+
**plugin-cache lockstep number** โ it bumps on every shipped-asset change so Codex/
|
|
114
116
|
marketplace cache-invalidate; it is not a maturity claim. The **formal identity-maturity release starts at
|
|
115
117
|
`v0.1.0`**. Do not conflate the two counters; a high npm number does not make the harness mature.
|
|
116
118
|
|
|
119
|
+
๐ฅ **Tag namespace โ the two counters must not share one (added 2026-08-21, operator-approved).**
|
|
120
|
+
They did, and it broke the public surface: both tracks used `vX.Y.Z`, only the maturity track had
|
|
121
|
+
GitHub *Release* objects, so the Releases page advertised **`v0.3.0` (2026-08-16) as "Latest"** while
|
|
122
|
+
the shipped package was **2.6.0**. A visitor could not tell which number was newer or what either meant.
|
|
123
|
+
|
|
124
|
+
This is the same defect class this repo keeps finding in its gates โ **two layers, one name** (a CI
|
|
125
|
+
`paths:` filter read as the local hook; a leg scoped to load-bearing changes read as scoped to every
|
|
126
|
+
marker, both measured 2026-08-21). The fix is never "merge the layers"; the two counters measure
|
|
127
|
+
genuinely different quantities and collapsing them destroys the maturity signal. The fix is to stop
|
|
128
|
+
sharing the name:
|
|
129
|
+
|
|
130
|
+
```
|
|
131
|
+
maturity track identity-v0.4.0 onward (v0.1.0 ยท v0.2.0 ยท v0.3.0 keep their names)
|
|
132
|
+
package track v2.6.0 onward, unchanged tags only โ NO GitHub Release objects (see below)
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
๐ฅ **The Releases page carries the maturity track ONLY โ and this was measured, not assumed.**
|
|
136
|
+
On 2026-08-21 a Release object was created for `v2.6.0` to make "Latest" reflect what ships. It was
|
|
137
|
+
deleted the same hour, by operator decision, because it solved the wrong half: **GitHub gives exactly
|
|
138
|
+
one "Latest" badge**, so two tracks on one page compete for it and the holder defines what the repo
|
|
139
|
+
announces. The package number took the headline and pushed the maturity claim under it. The misreading
|
|
140
|
+
that prompted it was already closed by the cheaper half โ a one-line header on the existing release
|
|
141
|
+
bodies. โ **package releases live in `CHANGELOG.md` and the registry, not here.** The `v2.x` tags
|
|
142
|
+
remain (a deleted Release does not delete its tag โ verified).
|
|
143
|
+
|
|
144
|
+
๐ฅ **Read every bare `vX.Y.Z` in THIS section as the maturity track โ and from v0.4.0 that means the
|
|
145
|
+
tag is `identity-vX.Y.Z`.** So the all-green ship below is the tag **`identity-v1.0.0`**, not `v1.0.0`;
|
|
146
|
+
a bare `v1.0.0` would now be ambiguous with the package track (already past `v2.x`, so it will never
|
|
147
|
+
mint one โ but "will never collide" is not the same as "is unambiguous to a reader").
|
|
148
|
+
โ ๏ธ Renaming the prefix without carrying it to the milestone is exactly the half-fix this repo keeps
|
|
149
|
+
recording โ the rule lands and the thing the rule points at does not follow
|
|
150
|
+
(`[[feedback_half_fix_propagation_boundary]]`). Caught by a peer session, not by the author, on the
|
|
151
|
+
same day the rename was written.
|
|
152
|
+
โ ๏ธ Deliberately **not** rewritten: `fh-gate v1.0.0` (a different package), the CHANGELOG's record of a
|
|
153
|
+
past version normalization (history), and CATALOG entries โ checked one by one before editing. A
|
|
154
|
+
blanket substitution would have corrupted all three.
|
|
155
|
+
|
|
156
|
+
โ ๏ธ **Existing tags are NOT renamed.** Retagging deletes and recreates a public ref that release bodies
|
|
157
|
+
and inbound links already point at โ an irreversible operation on a public surface, so the
|
|
158
|
+
Destructive-Op gate applies to this repo's own tags. The cheap equivalent is a one-line header on the
|
|
159
|
+
existing release bodies stating which track they belong to. (The v0.3.0 body already says it โ
|
|
160
|
+
*"independent of the npm plugin-cache number"* โ but four paragraphs down, where the Releases list does
|
|
161
|
+
not show it. Gate-locality: if it is not where the reader is, it is not there.)
|
|
162
|
+
|
|
117
163
|
**The `0.x` โ `1.0` mapping (refined 2026-07-14, informed operator decision).** Semver `0.x` explicitly
|
|
118
164
|
means *early / not-yet-complete*, so the formal track maps cleanly onto the identity gate:
|
|
119
165
|
- **`v0.1.0` = the first formal-release baseline.** It is tagged when the harness has a *proven core*
|
|
120
166
|
(โฅ1 identity ๐ข by real artifact) and an *honest, evidence-scored status for the rest* โ NOT when every
|
|
121
167
|
identity is green. `v0.1.0` makes **no all-green claim**; its release notes carry the real per-identity
|
|
122
168
|
status (๐ข/๐ก/๐ด). This is the baseline *from which* all-green is tracked, not the all-green ship itself.
|
|
123
|
-
- **`v1.0.0` = the all-green ship.** The original "ship only when every identity is ๐ข" condition maps to
|
|
124
|
-
|
|
169
|
+
- **`identity-v1.0.0` = the all-green ship.** The original "ship only when every identity is ๐ข" condition maps to
|
|
170
|
+
**`identity-v1.0.0`**, not `v0.1.0`. A ๐ก/๐ด blocks *v1.0*, and names exactly what real run is missing โ it does not
|
|
125
171
|
block the honest v0.1.0 baseline.
|
|
126
172
|
|
|
127
173
|
This refinement resolves the tension of tagging a baseline while identities are still maturing: `0.x` is
|
|
@@ -286,11 +332,34 @@ unchanged and keeps its own 2026-07-14 evidence).
|
|
|
286
332
|
| **โท** | **ํ๋ก์ ํธ ๋ถ์คํฐ** (booster) โ ๐ฅ **๋ค๋ฅธ ๋ค์ฏ๊ณผ ๊ฐ์ ์ธต์ด ์๋๋ค. ํฌ๊ด ๊ธฐ๋ฅ์ด๋ โ โกโค ๋ฅผ ยซํฌํจยปํ์ง ์๊ณ ยซ๋์ด๋ค ์ด๋คยป โ ์
๋ค ๋ถ์คํ
๋ฐ์ ๊ณ ์ ๋ฒ์๋ฅผ ๊ฐ๋๋ค** โ ๋ฒํธ ๋์ โท ๋ฅผ ์ฐ๋ ์ด์ ์ด์ ยงโท-layering ์ ๋จผ์ ์ฝ์ด์ผ ํ๋ ์ด์ | judgment-circuit + ship-gate | ๐ข **GREEN (์ ์ค 2026-08-16)** | **์ด ํ์ด ์๋ ๊ฒ์ด ์ด ํ์ ๋งน์ ์ด์๋ค.** ์จ๋ณด๋ฉ ๋ฌธ โข(ยซ๋งคํ ํ๋ก์ ํธ ๊ฐ์ยป)์ด ์ค๋์ ๋ถํฐ ์ด ๊ธฐ๋ฅ์ ํ๊ณ ์์๋๋ฐ ๋ฑ๊ธํ์ ๋์ ํ์ด ์์๋ค โ ๊ทธ๋์ ๋ถ์คํฐ๋ **ํ ๋ฒ๋ ๋ฑ๊ธ์ด ๋งค๊ฒจ์ง ์ ์ด ์๊ณ , ์ฝ์ ์ด ๋ฐ๊ฒฌ๋ ์๋ฆฌ๋ ์์๋ค.** ๋ฏธํ ๋น ๊ธฐ๋ฅ์ ๋ฏธ๊ฐ์ฌ ๊ธฐ๋ฅ์ด๋ค. **์ธ์ ์ธ ํ์ด ์ด๊ฑธ ์ ๋ฎ๋๋ค**: โก๋ *์ ํ๋ค์ค๋ฅผ ๋ณ๊ณ *(์ฑ์ํ ํ๋ค์ค๋ ๋์ ์๋), โค๋ *์ฌ๋์ ์๋*๋ฅผ ๋ฒผ๋ฆฌ๊ณ (์ฆํญ ๋์์ด ํ๋ค์ค๊ฐ ์๋๋ค), โ ์ ๋จ์ ๋ฅ๋ ฅ์ *FH ๊ฐ* ์ด๋ค(ํ์ฉ โช ํก์ โ ๋ ๋ค FH ๊ฐ ์ด๋ ๋ณด๋ ๋ฐฉํฅ). ๋ถ์คํฐ๋ **FH ์ ๊ธฐ๊ณ๊ฐ ์๋ ํ๋ค์ค์ ์์ฒด ๊ฐ๋ฐ์ ๊ฐ์ํ๋ ๊ฒ**์ด๋ผ ์
๋ค์ ๋ฐฉํฅ์ด ๋ค๋ฅด๋ค. **์ค์ (์ด์์ ์ด๊ฑฐ + ์ค์ธก)**: pmh ๋ *์ด ๊ฒฝ๋ก์์ ์ถ๋ฐํ๋ค* ยท mate ์คํฌ ์ถํ + ์ธํ๋ผ ๋ฐฐ์ ยท ์กฐ์ง ํ๊ฒฝ 2๊ฑด(ํ์ง ๊ฒ์ดํธ ์ธํ๋ผ ์ด์, ์์ฐ๋ช
์ residency ๋ก ๋ฏธ๊ธฐ์ฌ) ยท clawd-on-desk ยท gstack. **Dominance โ ยงGate consequence ๋ฅผ ๋ฉด์ ์์ด ๊ทธ๋๋ก ๋ง์กฑํ๋ค.** ๊ฒฝ์์ = *๊ทธ ํ๋ค์ค ์์ ์ ๊ฐ๋ฐ ๊ณผ์ *, ๊ฒฐ๊ณผ = ๊ทธ ๊ณผ์ ์ด ๋์น ๊ฒ์ ๋ถ์คํ
์ด ์ก์๋ค: โด **gstack**(์ธ๋ถยท์ด์์ ํต์ ๋ฐ) โ ์ด์ #1890 ์ ์ธ๋ถ์ธ ์๊ฒฉ์ผ๋ก ์ ๊ธฐ, ๊ทธ ๋ ํฌ ์ค๋๊ฐ ์์ ํ๊ณ **ํ๊ท ํ
์คํธ `test/claude-provider-keychain.test.ts` ๋ก ๋ชป ๋ฐ์ ๋ฆด๋ฆฌ์ค์ ์ค์๋ค**(2026-08-15). ์ฑํ ํ์ ์ด **์ฐ๋ฆฌ๊ฐ ์๋๋ผ ๊ทธ์ชฝ ๋ฉ์ธํ
์ด๋**๋ผ ์๊ธฐ์ฑ์ ์ด ์๋๋ค. โต **pmh**(2026-08-16 ์ค์ธก) โ ์ด์๋ ์์ฐ์ด ๋์ ํ๊ฒฝ์์ **๊ฒ์ดํธ๊ฐ ์ฃฝ์ ์ฑ** ์์๊ณ selfcheck 35 FAIL ์ด CI ๋ถ์ฌ๋ก ๋ช ๋ฌ๊ฐ ์ ๋ณด์๋ค; ๋ถ์คํ
๊ฒฝ๋ก๊ฐ ๊ทธ๊ฑธ ๋๋ฌ๋ด๊ณ 31/31ยท35โ2 ๋ก ๋ซ์๋ค. โ ์ด ๋ฐ์ dominance ๋ฉด์ ๋ **์ด ํ์ ํ์ํ์ง ์๋ค** โ โ ์ ์ฐ์ถ์ด ยซ์ ์ง์ด๋ ๋๋คยป๋ผ ๊ฒจ๋ฅ์ด ํ๋ ธ๋ ๊ฒฝ์ฐ๊ณ , ๋ถ์คํฐ์ ์ฐ์ถ์ ยซ์๋๊ฐ ๋ชป ์ก๋ ๊ฑธ ์ก์๋คยป๋ผ ์ด ์ ์ ์ ์์ ๊ทธ๋๋ก ๋ง๋๋ค. ๐ฅ **๋ช
์ ์์ฌ โ ์ด๋ก ํ์ ์์ฌ์ด์ง ๋ณด๋ฅ ์ฌ์ ๊ฐ ์๋๋ค**(โ ์ด ยซ(d) ์ ๋ซํยป์ ์๊ณ ๐ข์ธ ๊ฒ๊ณผ ๊ฐ์ ์ฒ๋ฆฌ): **๋ถ์คํ
์ด ์ด์ํ ์์ฐ์ด ๋์ ํ๊ฒฝ์์ ์ค์ ๋ก ๋ฐํํ๋์ง ์ฌ๋ ๊ณ๊ธฐ๊ฐ ์์๋ค.** 2026-08-16 pmh ์ค์ธก์ด ๊ทธ ๋๊ฐ๋ค โ ํ ์ค(`set -euo pipefail` ์๋ `package.json` ์ฝ๋ ํ ๋น๋ฌธ)์ด ๊ฒ์ดํธ๋ฅผ ์ฆ์ฌ์์ผฐ๊ณ , 30๋ ์ธ ํ๊ท ์ค์ํธ๊ฐ ๊ทธ๊ฑธ 30๋ฒ ๋ณด๊ณ ํ๋๋ฐ **์๋ฌด๋ ์ ๋ดค๋ค**(๊ทธ ๋ ํฌ์ CI ๊ฐ ์์์ผ๋ฏ๋ก). ์น๊ธ์ด ์๋๋ผ **์ด ํ์ ์ฒซ ์น๊ธ ๊ธฐ์ค**์ด ๊ฑฐ๊ธฐ์ ๋์จ๋ค(์๋). โ ๏ธ n ์ ์ธ์ง ์๋๋ค โ ์ค์ ์ด๊ฑฐ๋ ์ด์์ ์ฆ์ธ + ์ค๋ ์ค์ธก 2๊ฑด์ด๊ณ , ์กฐ์ง ํ๊ฒฝ 2๊ฑด์ ์ด ํ์ผ์์ ๊ฒ์ฆ ๋ถ๊ฐ(residency)์ด๋ฏ๋ก **์ฆ์ธ์ผ๋ก ํ๊ธฐํ๊ณ ์ธก์ ์ผ๋ก ์ธ์ง ์๋๋ค** |
|
|
287
333
|
| โข | ๊ฑฐ๋ฒ๋์ค ๊ฒ์ดํธ (governance) | ship-gate | ๐ข GREEN | pre-commit/pre-push physically block; moat measured 3โ4 family blind (HITL 8/8 ABSENT); cross-family caught a real companion-store-name leak 2026-07-14 (fail-closed) |
|
|
288
334
|
| โค | ์ฆํญ์ (amplifier) | judgment-circuit | ๐ข GREEN | short-intentโliterature-groundingโultimate-doc real instances; rules-diet โ18.2k measured; intent-routing probe 94% (below) |
|
|
289
|
-
| โฃ |
|
|
335
|
+
| โฃ | ํ๋ฐํฐ์ด ๋ต์ต (**์๋ ๊ธฐ๋ฐ** โ ๐ต RC, ์ฌ์ ์ 2026-08-21) | external-grounding | ๐ต RC | ๐ฅ **์ด ์ ์ฒด์ฑ์ ยซํ์ดํ๋ผ์ธยป์ด ์๋๋ผ ยซ๋ฃจํยป๋ค** (์ด์์ ์ฌ์ ์ 2026-08-21): **ํธ๋ฆฌ๊ฑฐ** = ์ด์์๊ฐ ๋ด ํ๋ยทํ๋จ์ **์๋ฌธ์ ํํ ์๊ฐ**(*"๊ทธ๊ฑฐ ์๋์ง ์์?"* ยท *"์ข ์ด์ํ๋ฐ"* ยท *"์ด๊ฑฐ ์ด๋?"* ยท *"์ด๋ป๊ฒ ์๊ฐํด?"*) โ **์ ์ฐจ** = ์๊ณ โ **๋ด๋ฉด ๋๊ตฌ ๋จผ์ (์ฑ
์ฅ)** โ ์ ๋ซํ๋ฉด **์ธ๊ณ(๋์๊ด)** โ **์ ์ 2๋จ** = ยซ๋ฌผ์ด๋ณผ๊น?ยป ๊ทธ๋ฆฌ๊ณ ยซ๋ฐ์ํ ๊น?ยป. **์์ฃผ ํ์ ** = *์ฌ๋์ด ์ ์์ผฐ๋๋ฐ* ยซ๋ฌผ์ด๋ณผ๊น?ยป๊ฐ ๋ด๊ณ , ํ์ํ ๊ฒ์ด **์ค์ ๊ฐํ๋ก ์ด์ด์ก๋**. ๐ฅ **`frontier-digest` ๋ ์ด ์ ์ฒด์ฑ์ด ์๋๋ค** โ ๊ทธ๊ฑด launchd ๋ก ๋๋ **๊ธฐ๊ณํ๋ ์ผ์์์
**์ด๊ณ , ์ด ํ์ด ๊ทธ๋์ ๊ทธ๊ฒ์ ์ฌ๊ณ ์์๋ค(๋ฒ์ ์ค์กฐ์ค). ์๋ ยงdigest-routine ์ผ๋ก ์ด๊ด. **2026-08-21 ์ค์ธก โ 0/4**: ๊ทธ๋ ์ด์์ ์๋ฌธ 5๊ฑด ์ค 4๊ฑด(*๋ด์ธ ๊ฐ๋ด* ยท *๋ฐํ์๋ ์ซ์* ยท *์๋ ์ค๋
* ยท *์์
๋ฒ์*)์์ ์ธ์
์ **์ ๋ถ ๋ด๋ถ ํ์ธ์ผ๋ก ๋ซ์๊ณ ์ธ๋ถ ์กฐํ 0ํ**, ๋๋จธ์ง 1๊ฑด์ *"์ธ๊ณ์ ๋ฌผ์ด๋ณด์๋"* ๋ผ๋ **๋ช
์ ๋ช
๋ น**์ด๋ผ ํธ๋ฆฌ๊ฑฐ๊ฐ ์๋๋ผ ์ง์์๋ค. ๊ทธ 1ํ๊ฐ ๊ณง๋ฐ๋ก ์ ํ์ฐ๊ตฌ(`arXiv:2507.23158`, ๊ฐ์ ๊ณผ์ ์ ๋ฒค์น๋งํฌ P61/R36)๋ฅผ ๋๋ค โ **๋ฅ๋ ฅ์ด ์๋๋ผ ๊ฒฉ๋ฐ์ด ๋น ์๋ฆฌ**์์ ๊ฐ์ ๋ ์์ชฝ์ผ๋ก ๋ณด์ฌ์ค๋ค. **๊ฒฉ๋ฐ ํ๋ฉด์ ๋์ด๊ณ ์ํ๊ฐ ๋ค๋ฅด๋ค**: โ **๋น๋ ์์ **(์ ๋ฉ์ปค๋์ฆ ์ง๊ธฐ ์ง์ ) โ ๋ฌผ๊ฑด์ ์๋ค(`feat/prior-art-prompt-t2`, ใ์ฑ
์ฅ ๋จผ์ , ์์ผ๋ฉด ๋์๊ดใ) ๊ทธ๋ฌ๋ **์ด๋ settings ์๋ ๋ฏธ๋ฑ๋ก**์ด๊ณ , ๋ฑ๋กํด๋ `matcher=Write` ๋ผ **auto-mode ์ธ์
์ด heredoc ์ผ๋ก ํ์ผ์ ๋ง๋๋ ํ ๊ตฌ์กฐ์ ์ผ๋ก ์ฐํ๋๋ค**(2026-08-21 ์ธก์ , ์ปจํธ๋กค ๋๋ฐ). โ **๋ํ ์์ **(์๋ฌธ ๋ฐํ) โ **๊ธฐ๊ณ ์์**. ๐ฅ **๊ฒฝ๊ณ**: ยซ์ด ์๋ฌธ์ด ์ธ๋ถ๋ฅผ ์๊ตฌํ๋ยป๋ **ํ๋จ์ด์ง ์ฑ๋์ด ์๋๋ค**. ํ
์ด ํ ์ ์๋ ์ต๋๋ ยซ์ธ๋ถ ๊ณ ์ ๋ช
์ฌ๊ฐ ์ ์/๋ฌผ์ ํํ๋ก ๋ค์ด์๋คยป๋ฅผ surface ํ๋ ๊ฒ๊น์ง๊ณ , ๋ก์๋์ง๋ ์ฌ๋/์ธ์
์ด ์ ํ๋ค โ ์ด๊ฑธ ๊ธฐ๊ณ์ ๋๊ธฐ๋ฉด ยงMechanization Boundary ๊ฐ ๊ธํ๋ ยซ๊ฒฐ๋ก ์ ๋จ์ธํ๋ ์ฒดํฌยป๊ฐ ๋๋ค |
|
|
290
336
|
| โ | ํ๋ค์ค ํด๋ฌ์คํฐ (**๐ข 2026-08-16 โ ๊ธฐ์ค์ด ๋ฐ๋์๋ค, ์๋ ยงโ -2026-08-16 ๋ฅผ ๋จผ์ ์ฝ์ด๋ผ**) | context-continuity | ๐ข | routing already ran for real (17 nodes, sidecar-orchestrator, Skill Bus). **The relay half is now built rather than specified**: `capability_composition_contract.md` (2026-08-02) was a complete spec with **zero implementing code** โ the โ blocker was missing wiring, not missing design ([[feedback_built_but_not_wired]]). `scripts/relay_channel.sh` executes it (strictest-wins merge ยท typed invocation ยท checks 1/2/3 ยท short-circuit ยท causal binding), `scripts/test_relay_channel_lanes.sh` carries **64 lanes, BLOCK/PASS symmetric**, and three arms ran across **two real field harnesses** (pmh-dev ยท qasp-dev) on FH's own assets. โญ **The measured result is the divergence arm, and its mechanism is not what the first draft of this row said.** On `templates/.git-hooks`, `qasp` alone returns exit 0 โ a single-node pass would have shipped it โ and the composition returns `BLOCKED` because `pmh` returns `FINDINGS`. But `qasp`'s exit 0 is `degrade-scan: no scannable (py/sh) target files`: **zero files were scanned.** The qasp copy predates pmh's 2026-07-28 shebang pass, so extension-less hook files are invisible to it, and its exit 0 means *no target*, not *clean*. So the composition did not catch a substantive disagreement between two harnesses โ it caught **a single node rendering an unmeasured surface as a pass**, which is `[[feedback_not_found_is_not_zero_family]]`, and structurally the spec's own ยงโ.4 B1 ("the exit 0 that means I never started"). That is a *stronger* result than the first framing and a narrower one: it demonstrates the union catching a blind spot, not decorrelated judgment. **Correction also to the order claim**: both orders return `rc=2`, but in the pmh-first order the chain short-circuits at node 1 and qasp never runs โ only the qasp-first order actually exercises the union. Non-decorative: reverting each wiring line reddens lanes and no reversion passes silently. **Why this is RC and not ๐ข** โ *updated 2026-08-11; (b) and (c) moved, (a) did not, and a fourth appeared*: (a) the row's *other* half, external-harness recommend, is still parked โ **unchanged, and it is a build, not a check**; (b) ~~`scripts/capability_registry_check.sh` does not exist~~ โ **built 2026-08-11** (M1โM5 + the ranโ did-not-run clause, M4 pair executed, 7 self-test lanes BLOCK/PASS symmetric); (d) **NEW, and it cuts against the row**: a capability declaring `writes: read-only` passed all of M1โM5 and its entry point then `rm -rf`'d this repo's `scripts/`. The registration bar measures *form* and *known-pair separation*, never *whether the declaration is true* โ so the machinery this row now points at carries a demonstrated structural hole (`capability_composition_contract.md ยงSalience`). A checker whose green can precede a destructive act is not yet a green identity; (c) ~~the two nodes are copies of one scanner at different staleness~~ โ **superseded 2026-08-11, but only partly**: a run now exists across two *genuinely different* capabilities (a leak lens โช a verdict-direction lens โ different enums, different defect classes, each blocking on its own finding), and the clean arm exercised the union end-to-end. โ ๏ธ **That satisfies the letter of the old (c) and not the identity's spirit: both new nodes live inside FH.** This identity was then named *๋ฉํฐํ๋ค์ค ํด๋ฌ์คํฐ* (shortened to *ํ๋ค์ค ํด๋ฌ์คํฐ* 2026-08-16); the only run that actually crossed harness boundaries is still the older pmh-dev/qasp-dev one, whose nodes were<a name="c-orig"></a> **copies of one scanner at different staleness** (all three copies โ pmh 237 ln, qasp 121 ln, FH 269 ln โ share a byte-identical 12-line header; the clean arm's two `out_sha` were identical), so the run proves the channel turns and that composing unequal copies has value, not that two independent judgments were decorrelated. Artifact: `tracks/_meta/identity_audit_2026-08-09_relay_channel.md` <br><br>**<a name="id1-20260816"></a>ยงโ -2026-08-16 โ ์ด ํ์ด ๐ข ์ด ๋ ์ด์ ๋ ยซ๋ ์ํด์ยป ๊ฐ ์๋๋ผ ยซ๋ค๋ฅธ ๊ฒ์ ์ฌ์ยป ๋ค. ๊ทธ ์ฌ์ค์ ๋จผ์ ์ ๋๋ค.** ๐ฅ **์ ๋ฐ๋ก ์ฌ๋ฉด ์ด ํ์ ์ค๋๋ ๐ต ๋ค.** ยงGate consequence ์ dominance ์ ์ **๋ ๋ฒ** ์๊ณ **๋ ๋ค ๋ฏธ์ฑ๋ฆฝ**์ด๋ค โ 1์ฐจ(๊ธฐ๊ณ ์ค์บ vs recall, `tracks/_meta/dominance_2026-08-16_cluster_scan_vs_recall_RESULT.md`)๋ **์๋ณด**: ๊ธฐ๊ณ๋ ์คํ ์ถ(M4ยทM6)์ ๋
์ ํ๊ณ recall ์ ๊ตฌ์กฐยท์ ํฉ ์ถ์ ๋
์ ํ๋ค โ ์์ด์ด ์๋๋ผ ์ง๊ต๋ค. 2์ฐจ(**๋ณต์ฌ vs ํธ์ถ**, survives ๋ค๋ฆฌ, `tracks/_meta/dominance_2026-08-16b_copy_vs_call_RESULT.md`)๋ **safety ๋๋ฅ **: ๊ตฌ enum ์ฌ๋ณธ์ผ๋ก `exit 4` ๋ฅผ ๋ถ๋ฅด๋ฉด relay ๊ฐ enum ๋ฐ ๊ฐ์ `HARNESS_ERROR` ๋ก ์ ์ด `BLOCKED`(rc=2), ์์ ์ ์ธ์ `OUT_OF_SCOPE` ๋ก `BLOCKED`(rc=2) โ **๋ ๋ค ๋ง๋๋ค.** ใ๋ณต์ฌ๋ ์กฐ์ฉํ ์ฉ๋๋คใ๋ ์์ธก์ด ๋ฐ์ฆ๋๊ณ , ์ ์ฉ๊ฒ ๋ง์์ฃผ๋ ๊ฒ์ ์ด ๋ ํฌ๊ฐ ์ด๋ฏธ ๊ฐ์ง ยซ๋ฏธ์ธก์ โ PASSยป ๊ท์จ์ ๊ธฐ๊ณ ํ๋ณธ์ด์๋ค. ๋ ์ธก์ ๋ค **์ฌ์ ๋ฑ๋ก ๋ด์ธ ํ ์คํ**์ด๊ณ ๋ฐ์ฆ ์กฐ๊ฑด์ ๊ฒฐ๊ณผ ๋ค์ ์ฎ๊ธฐ์ง ์์๋ค. โ **์ด์์ ๊ฒฐ์ (2026-08-16)**: โ ์ ๐ข ๊ธฐ์ค์ dominance ์์ **โโโ 3๊ธฐ์ค์ผ๋ก ๋์ฒด**ํ๋ค. ์ด์์ ์๋ฌธ โ *"๊ทธ๋ค์ ๋ฅ๋ ฅ์ ํ์ฉํ๊ณ **๋ด ์ชฝ์์ ๋ ์ง์ง ์๊ธฐ ์ํ(์ฌ๋ฐ๋ช
์ ์ต์ํํ๊ธฐ ์ํ)** ๋ชฉ์ ์ด ๋ฉํฐํ๋ค์ค ํด๋ฌ์คํฐ"* ยท *"FH ์ **๋พฐ์กฑํ ๋ถ๋ถ์ ์ ์งํ๋ฉด์** ๋ฅ๋ ฅ์ ์ต๋ํ ์ธ ์ ์๋ ๋ฐฉ๋ฒ"* ยท *"์ค๋์ค๋ ์งํ์ ๋ฐ๋ผ **์ด์๋จ์ผ๋ฉด์ ์์์ง๋ฉด์๋** ๊ฐ์น๋ฅผ ๋ฐํ โฆ LLM ์ ์งํ ๊ทธ๋ฆฌ๊ณ ๋ค๋ฅธ ์ ์์ ํ๋ค์ค๋ค์ ์งํ, **๊ทธ ๋์ ๋ฐ๋ ๊ฒ์ด ๋ชฉ์ **"* (์ ๋ฌธ + ๋ฐฉ๋ฒ๋ก : `tracks/_meta/doctrine_2026-08-16_identity1_redefinition_and_method.md`). โ ์ ์ฐ์ถ์ ยซ๋ ๋ง์ด ์ก์๋คยป๊ฐ ์๋๋ผ **ยซ์ ์ง์ด๋ ๋๋คยป** ๋ผ์ dominance ๋ ๊ฒจ๋ฅ์ด ํ๋ฆฐ ๊ณ๊ธฐ๋ค. โ ๏ธ **์ด ๋์ฒด๋ โ ์๋ง ์ ์ฉ๋๋ค** โ ๋ค๋ฅธ ํ์ dominance ์๊ตฌ๋ ๊ทธ๋๋ก๋ค. **โ ์ฌ์ฌ์ฉ์ด ์ค์ฌํ๊ณ ํธ์ถ ๊ฐ๋ฅํ๊ฐ(๋ณต๋ถ ์๋)** โ โ
**์ธก์ **: `pmh-dev:merge-noop-check` ๊ฐ **pmh ์๊ธฐ ๋ ํฌ์์** ์ ์ธ๋๊ณ (`.claude/capabilities/merge-noop-check.cap`, `requires_cwd: SELF`, known-pair ๋ ๊ทธ ๋ ํฌ์ ์ค์ ์ปค๋ฐ ๋ ๊ฐ), FH ๊ฐ `cluster_capability_scan.sh discover` ๋ก **๋ฐ๊ฒฌ** โ `capability_registry_check.sh` M1โM6 `REGISTRABLE` โ `relay_channel.sh run` ์ผ๋ก **์ค์ ํธ์ถ**ํ๋ค. ์ยท์ arm ์ด ๊ฐ๋ฆฐ๋ค โ NO-OP ์
๋ ฅ์ `FH_NODE1_VERDICT: NO_OP` ๋ก node1 ์์ BLOCKED, ์ฐจ์ด ์๋ ์
๋ ฅ์ node1 ํต๊ณผ(`HAS_DIFF`) ํ node2(`forge-harness:degrade-direction-scan`)๊ฐ `FINDINGS` ๋ก BLOCKED. **๋ค๋ฅธ ๋
ธ๋์์ ๋ค๋ฅธ ์ด์ ๋ก** ๋งํ๋ฏ๋ก ใ๋ ๋ง๋ ๊ณ๊ธฐใ์ ๊ตฌ๋ถ๋๋ค. **โ FH ๊ฐ ์ ์ปค์ก๋๊ฐ โ ยซ์ ํ ์ผยป์ ์ด๋ฆ์ผ๋ก ๋ ์ ์๋๊ฐ** โ โ
: `merge_noop_check.sh`(ํธ๋ฆฌํด์ + ์กฐ์๊ด๊ณ ํ์ )๋ฅผ FH ๋ ์ง์ง ์์๊ณ , FH ์๊ธฐ ์ ๋ณธ `knowledge/shared/rules/multi_session_close_protocol.md ยง1-b` ๊ฐ **๊ทธ ํ์ผ์ ์ด๋ฆ์ผ๋ก ์ง๋ชฉํ๋ฉฐ ยซ๊ฐ์ ธ์ค๋ฉด ๋๋คยป** ๊ณ ์ด๋ฏธ ์ ์ด๋ ์๋ฆฌ๊ฐ ์ฌ๊ธฐ๋ค. ์ค๋ FH ๊ฐ ์๋ก ์ง์ ๊ฒ์ **์ฑ๋**(`relay_channel.sh --cap-args`, ๋
ธ๋๋ณ ํธ์ถ ์ธ์)์ด์ง ํ๋จ์ด ์๋๋ค โ ๊ทธ ์ฑ๋์ด ์๋ ๋์ ํธ์ถ ์์ ์ธ์๋ฅผ ์๊ตฌํ๋ ๋ฅ๋ ฅ์ **ํญ์ `ARGS โ HARNESS_ERROR โ BLOCKED`** ์๋ค(๋ฐฉํฅ์ fail-closed ๋ก ์ณ์์ผ๋ **์ ํธ๊ฐ 0**, ์ฆ ยซํธ์ถ ๊ฐ๋ฅยป ์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ง์กฑ์ํฌ ์ ์์๋ค). **โ ๋พฐ์กฑํจ์ด ๋ณด์กด๋๋๊ฐ** โ โ
**์ธก์ **: ํฉ์ฑ์ด `FH_MERGED_residency: company`(๋ ์ค ์๊ฒฉํ ์ชฝ) ยท `verdict_binding` ์ 4๊ฐ ํฉ์งํฉ ยท ์๋ฅ๊ฐ ๋งํ๋ฉด ํ๋ฅ ๋
ธ๋ ๋ฏธ์คํ. ๐ฅ **๋ช
์ ์์ฌ โ ์ถ์ํ์ง ์๋๋ค.** โด **๋ ์ธก๋๋ฅผ ๊ฐ๋ผ ์ ๋๋ค.** **ใฎ ์ ์ธ ๋ณด์ ํ๋ค์ค = 2**(FH ยท pmh) โ *๋ฅ๋ ฅ(capacity)* ์ธก๋. **ใฏ ์ค์ ๋ก ํจ๊ป ๋ ํ๋ค์ค = 5** โ *์ฌ๊ฑด(event)* ์ธก๋์ด๊ณ ์ ์ฒด์ฑ์ด ๋ฌป๋ ์ชฝ์ด๋ค. ๐ฅ **๋จ์ผ ํฉ์ฑ ํ ๋ฒ์ 5๊ฐ๊ฐ ๋์๋ค(์ค์ธก, ์ธ์
๋ง)**: `relay_channel.sh run` 4๋
ธ๋ ์ฒด์ธ์ด `gstack`(์ด๋ํฐ) โ `pmh-dev`(์์ ์ ์ธ) โ `mate-dev`(์ด๋ํฐ) โ `qasp-dev`(์ด๋ํฐ) ๋ฅผ ํ์ฐ๊ณ FH ๊ฐ ๊ทธ ์ฌ์ด์์ ๋ณํฉํ๋ค โ ์ฒญ์ arm ์ **๋ค ๋
ธ๋ ์ ๋ถ ์คํ ํ `FH_RELAY_VERDICT: PASS`(rc=0)**, ๊ต๋ arm ์ node3 `FAIL` ์์ `BLOCKED` + ํ๋ฅ ๋ฏธ์คํ(rc=2). **๋ ํต๊ณผํ์ง๋ ๋ ๋ง์ง๋ ์๋๋ค.** ๋ณํฉ ๊ฒฐ๊ณผ: `residency: company`(๋ค์ฏ ์ค ์ต์๊ฒฉ) ยท `verdict_binding` **9๊ฐ ํฉ์งํฉ**. โ ๏ธ ใฎ ๊ฐ ์ฌ์ ํ 2์ธ ๊ฒ์ ๋๋จธ์ง ์
์ด **์ด๋ํฐ**(FH ์์ ยทFH ์ ์ง)์ด๊ธฐ ๋๋ฌธ์ด๊ณ , ๊ทธ๊ฒ ๊ฒฐํจ์ด ์๋๋ผ ์ด์์ ๊ฒฐ์ ์ผ๋ก ์ ํด์ง **๊ธฐ๋ณธ ๊ฒฝ๋ก**๋ค(ยง์ ์ธ ์์น). ใฎ ๊ฐ ์ปค์ง๋ ๊ฒ์ ๋จ์ด ยซ๋
ธ์ถํ๋คยป ๊ณ ์๊ธฐ ์ ๋ณธ์ ์ ์์ ๋๋ฟ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ใฎ ๊ฐ ์ฌ์ ํ ์๋ค๋ ์ฌ์ค์ ๋จ๋๋ค: โ ๏ธ **๋ถํ๋ฆฌ์ง ์๋๋ค**: clawd-on-desk ๋ ํ๋ค์ค ์์ฐ์ด ์๋ **๋์ ๋ ํฌ**๋ผ PR #888 ์ ๊ธฐ์ฌ์์ง ํ๋ค์ค ์ฃผํ์ด ์๋๋ค โ ์ธ์ง ์์๋ค. ๊ทธ๋ฆฌ๊ณ ใฎ ๊ฐ ์ฌ์ ํ ์๋ค๋ ์ฌ์ค์ ๋จ๋๋ค: qasp ๋ **๊ทธ ํ๋ค์ค ์์ ์ ์
์ฅ๋ฆฌ๋ทฐ๊ฐ REJECT** ํ๋ค โ ์ ๋ณธ ๊ทผ๊ฑฐ 0๊ฑด ยท ์๋น์ 0๊ณณ(์ฝ๋ ๊ฑด FH ๋ฟ) ยท `session.md:101` ใn=3 ์ ์ ์ถ์ํ ๊ธ์งใ ์๋ฐ ยท **๊ทธ ์ ์ธ ๊ฒฝ๋ก๊ฐ ๊ทธ ํ๋ค์ค์ ์กฐ์ง ๋ฏธ๋ฌ ๋์์์ ์ ์ธ๋ผ ์์ง ์๋ค**(์ด์์๊ฐ ์ด ๋ ํฌ์์ ํต์ ํ์ง ์๋ ๋ชฉ์ ์ง๋ก ๊ทธ๋๋ก ๋ณต์ ๋๋ค). ์ด์์ ๊ฒฐ์ (2026-08-16)์ผ๋ก **๋ณด๋ฅ**์ด๋ฉฐ, ใ์ด ํ๋ค์ค๋ ์ธ๋ถ ํ๋ค์ค์ ์๊ธฐ ์ธํฐํ์ด์ค๋ฅผ ๋
ธ์ถํ๋คใ๋ฅผ **๊ทธ ํ๋ค์ค ์์ ์ ์ ๋ณธ์ ์ ๋ ๊ฒ**์ด ์ ํ ์กฐ๊ฑด์ด๋ค. ์ ์ธ ํ์ผ์ด ๋จ์ ๋ ํฌ์ **์๋ค**๋ ๊ฒ๊ณผ ๊ทธ ํ๋ค์ค๊ฐ ๋
ธ์ถ์ **๊ฒฐ์ ํ๋ค**๋ ๊ฒ์ ๋ค๋ฅธ ๋ช
์ ๋ค. โต ๐ฅ **(d) ๋ ์ ๋ซํ๋ค.** `.git/objects` ๋ฅผ ๊ฐ์๋ฉด์ ๋ฃ์ด ๊ฐ์ฒด ์ฐ๊ธฐ ํ ๋ถ๋ฅ๋ฅผ ๋ซ์๊ณ (probe L13 ํ์ง / L13b ๊ณผ์ฐจ๋จ ์ปจํธ๋กค / ๋๋๋ฆผ ์ ์ ํํ L13 ๋ง ์ ์), **๊ทธ๋ฌ๋ M6 ๋ ์ ์ธ๋ ์บ๋ฆฌ๋ธ๋ ์ด์
arm ๋ง ๊ด์ธกํ๋ค** โ ์ค์ฆ: `merge_noop_check.sh` ๋ **๋ถ๊ธฐ ์
๋ ฅ์์ git ๊ฐ์ฒด๋ฅผ ์ฐ๋๋ฐ**(๊ฒฉ๋ฆฌ ํด๋ก ์ค์ธก: `.git/objects` ํ์ผ ์๊ฐ **+1**. โ ๏ธ ์ ๋๊ฐ์ ํด๋ก ์ํ์ ์์กดํ๋ฏ๋ก **๋ธํ๋ง ์ธ์ฉํ๋ค** โ ์ด์ ํ๋ณธ์ด ์ ์๋ ์ ๋ ์์ ์ฌํ ๋ถ๊ฐ๋ผ ์ฒ ํํ๋ค) ์ ์ธ๋ ๋ arm ์ด ๊ทธ ๊ฒฝ๋ก๋ฅผ ์ ์ง๋๋ฏ๋ก `writes: read-only` ๋ก ๊ฑฐ์ง ์ ์ธํด๋ `REGISTRABLE` ์ด ๋๋ค(์ค์ธก ํ์ธ). ๊ฐ์ ๋ ์์นจ์ ๋์จ **ใ๊ฒ์ฌ๊ธฐ์ enumโ๊ตฌํ ์ผ์น ์ถ์ด ์๋คใ์ ๊ฐ์ ํํ**๋ค โ ๊ฐ์ stale ์ ์ธ์ด ์บ๋ฆฌ๋ธ๋ ์ด์
์์ ๋ฐ๋ผ REJECTED ๋ REGISTRABLE ๋ ๋๋ค. ํ ๋ฌธ์ฅ์ผ๋ก: **๊ฒ์ฌ๊ธฐ๋ ์ ์ธ์ด ์ํค๋ ๊ฒ๋ง ๋ณธ๋ค.** โถ ๊ทธ๋ฌ๋ฏ๋ก ์ด ๐ข ์ **ใํด๋ฌ์คํฐ๊ฐ ์ค์ ๋ก ๋๋คใ**์ ๋ํ ๊ฒ์ด์ง **ใ๋ฑ๋ก ๋ฐ๊ฐ ์ ์ธ์ ์ง์๋ฅผ ๊ฒ์ฆํ๋คใ**์ ๋ํ ๊ฒ์ด ์๋๋ค. ํ์๋ ์ด๋ ค ์๊ณ , ์ด๋ ค ์๋ค๊ณ ์ ๋๋ค. Artifact: `tracks/_meta/identity_audit_2026-08-16_cluster_green.md` <br><br>**<a name="id1-naming"></a>ยงโ -naming (์ด์์ ๊ฒฐ์ , 2026-08-16) โ ์ด๋ฆ์ ์ค์ด๊ณ , ๊ทธ ์์ ํ์ค ๋ถํ์ ์ด๋ฆ์ ์ค๋ค.** ใ๋ฉํฐํ๋ค์ค ํด๋ฌ์คํฐใ โ **ใํ๋ค์ค ํด๋ฌ์คํฐใ**: ใ๋ฉํฐใ์ ใํด๋ฌ์คํฐใ๊ฐ ๋ ๋ค ๋ณต์๋ฅผ ๋ปํด **์ค๋ณต์ด์๋ค**. ๊ทธ๋ฆฌ๊ณ ๊ทธ ์๋์ **ํฌ๋ก์คํ๋ค์ค**๋ฅผ ๋๋ค โ *"์๋ก๊ฐ์ ๋ฅ๋ ฅ์ ๋ณด๊ฐํ๊ธฐ ์ํจ์ด์ผ. **์๋ ๊ฑธ ์ฐ๊ธฐ ์ํจ**์ด๊ณ , FH ์์ **โ์ง์ง ์์๋ ๋๋ ๊ฒโ์ ๋ค๋ฅธ ๋ ํฌ ๊ฐ๋ฐ์ ํ์ฉ**ํ๊ธฐ ์ํจ์ด์ง. ๋ค๋ง ๊ทธ ์์ค์ **FH ์์ ์ง์ด์ผ ํ๋ ๊ฒ ๋ณด์ด๋ฉด ๊ฐ์ ํด์ ๋ต์ต**ํ๋ ๊ฑฐ๊ณ ."*(์ด์์) โ **ํฌ๋ก์คํ๋ค์ค๋ ์๋ฐฉํฅ์ด๋ค**: **ํ์ฉ**(๋จ์ ๋ฅ๋ ฅ์ ํธ์ถํด FH ๊ฐ ์ ์ง๋๋ค) **โช ํก์**(FH ๊ฐ ์ง์ด์ผ ํ ๊ฒ์ด ๋ณด์ด๋ฉด ๊ฐ์ ํด ๋ค์ฌ์จ๋ค). ์ข
์ ์ ์๋ ์์ ์ ๋ฐ๋ฟ์ด์๋ค. ๐ฅ **๋์ ๊ด๊ณ๋ ํฉ์งํฉ์ด ์๋๋ผ ยซํฌํจ + ํ์คยป์ด๋ค.** ์ด์์: *"ํ๋ค์ค ํด๋ฌ์คํฐ๊ฐ ๋๋ ค๋ฉด ํฌ๋ก์คํ๋ค์ค๋ ํญ์ ์์ด์ผ ํ๋๊น."* โ **ํฌ๋ก์คํ๋ค์ค๋ ํ๋ค์ค ํด๋ฌ์คํฐ์ ํ์์กฐ๊ฑด**์ด๊ณ , ๊ทธ๋์ ํ์ ์์ ๋ค์์ด ๋ฐ๋ผ ๋์จ๋ค โ **โ(ยซ์ฌ์ฌ์ฉ์ด ์ค์ฌํ๊ณ ํธ์ถ ๊ฐ๋ฅํ๊ฐยป)๊ฐ ๊ณง ํฌ๋ก์คํ๋ค์ค ์ํ์ด๊ณ , ๊ทธ๊ฒ ์ด ์ ์ฒด์ฑ์ ๊ฒฐ๋ฐ ์ง์ ์ด๋ค.** ๋
ธ๋ ์ n ์ ํด๋ฌ์คํฐ์ **๋ฒ์**๋ฅผ ์ฌ์ง ยซ๋๋๊ฐยป๋ฅผ ์ฌ์ง ์๋๋ค. (์ด ๊ตฌ๋ถ์ด ์์ด์ ์ด ํ์ ์์ฌ โด์ด ยซn=1ยป์ ๋ง์น ๋ฏธ์ฑ๋ฆฝ์ฒ๋ผ ์ฝํ๊ฒ ์ ํ ์์๋ค โ n=1 ์์๋ ๊ตํ์ ์ค์ ๋ก ์ผ์ด๋ฌ๋ค. ๋ค๋ง **n ์ ๋๋ฆฌ๋ ๊ฒ์ ์ฌ์ ํ ์ณ๊ณ , ๊ทธ๊ฑด ์ ์ธ์ด ์์ด์์ง ๊ธฐ์ ๊ฐ ์์ด์๊ฐ ์๋๋ค**: ์ค์ธก 2026-08-16, ๋งคํ๋ ํ๋ค์ค 12๊ฐ ์ค ์ ์ธ ๋ณด์ 2๊ฐ ยท ๋๋จธ์ง 10๊ฐ๋ `.claude/capabilities` ๋๋ ํ ๋ฆฌ ์์ฒด๊ฐ ์๋ค. ๋๊ตฌ๋ ์๋ค โ gstack `bin/*`=69 ยท gbrain 50 ยท openhuman 43 ยท mate-dev 7 ยท qasp-dev 16.) ๐ฅ **ํฌ๋ก์คํ๋ค์ค๋ ๋ ํํ๋ฅผ ๊ฐ๊ณ , ๋ ๋ค ยซ๊ฑด๋๋คยป์ ๋ ๋ค(์ด์์, 2026-08-16).** **๊ธฐ๊ณ ํํ** = ๋จ์ ๋ฅ๋ ฅ์ typed ์ฑ๋๋ก ํธ์ถํ๋ค(`.cap` ์ ์ธ ํ์) ยท **ํ๋จ ํํ** = **๋จ์ ์ ๋ณธ์ ๊ทผ๊ฑฐ๋ก ์ฌ์ฌ๋ฐ๋๋ค**(์
์ฅ๋ฆฌ๋ทฐ โ ์ ์ธ ๋ถ์). ์ด์์: *"์
์ฅ๋ฆฌ๋ทฐ๋ ํฌ๋ก์ค๊ฐ ์๋๊น โฆ ๊ฒฐ๊ตญ ๋์ ๊ทธ์ชฝ ํ๋ค์ค 2๊ฐ๊ฐ ๋์์ ๋๋ ๊ฑฐ๋๊น."* โ **ํ๋จ ํํ๋ ์ ์ธ ์์ด ์ง๊ธ ๋น์ฅ ๋ชจ๋ ํ๋ค์ค์์ ์ฑ๋ฆฝํ๋ค**, ๊ทธ๋ฆฌ๊ณ **ํ ๋ฒ์ ํฌ๋ก์ฑ์ด ์ด๋ฏธ ํ๋ค์ค 2๊ฐ์ ๋์ ์ฃผํ**์ด๋ค. *"ํฌ๋ก์คํ๋ค์ค๋ ๋
ธ๋ 1๊ฐ๋ผ๋ ๋ฐํ๋๋ ๊ฑฐ๊ณ โฆ ๊ทธ๊ฒ ๋์ด๋๋ฉด ํด๋ฌ์คํฐ๊ฐ ๋๋ ๊ฑฐ๊ณ ."* โ **ํฌ๋ก์คํ๋ค์ค = ์ฌ๊ฑด(๊ฑด๋๋ค) ยท ํ๋ค์ค ํด๋ฌ์คํฐ = ๊ทธ ์ฌ๊ฑด์ ๋์ .** ๐ฅ **์ด ๋ฌธ์ฅ์ด ์๋ ์์ฌ โด์ ๊ณ์ ์ค๋ฅ๋ฅผ ์ก๋๋ค** โ ๋๋ ยซ์ธ๋ถ **์ ์ธ** ์ยป๋ฅผ ์
๋๋ฐ ์ ์ฒด์ฑ์ด ๋ฌป๋ ๊ฒ์ ยซ**ํจ๊ป ๋ ํ๋ค์ค** ์ยป๋ค. ๋ ์ธก๋๋ฅผ ๊ฐ๋ผ ์ ๋๋ค(๋ ๋ค ๋จ๊ธด๋ค, ์ ๋ฆฌํ ์ชฝ๋ง ๋จ๊ธฐ์ง ์๋๋ค). ๐ฅ **๋ช
์นญ ๊ฒฝ๊ณ โ ์๊ณ ์ด๋ค.** `cross-harness` ๋ ์ด ๋ ํฌ์์ **์ด๋ฏธ ๋ค๋ฅธ ๋ป**์ผ๋ก ์ฐ์ธ๋ค: `CLAUDE.md ยงStandpoint axis` ยท `field_verdict_crossfamily_gate.md ยง7` ์ *"cross-harness-boundary change"* = **๋ค๋ฅธ ํ๋ค์ค์ ๋์ยท๊ฒ์ดํธ ๊ฒฐ๊ณผยท์ํธ์์ฉ ๊ณ์ฝ์ ๋ฐ๊พธ๋ diff**(๊ฒ์ดํธ ํธ๋ฆฌ๊ฑฐ ๋ฒ์). ์ ์ฒด์ฑ ์ด๋ฆ์ด ใํ๋ค์ค ํด๋ฌ์คํฐใ๋ก ๋จ์ผ๋ฏ๋ก **์ต์์ ์ธต์์๋ ์ถฉ๋ํ์ง ์์ง๋ง**, ํ์ ๊ธฐ์ ใํฌ๋ก์คํ๋ค์คใ์๋ ์ฌ์ ํ ๊ฐ์ ๋ฑ๋ง์ด๋ค โ ๊ตฌ๋ถ: **๋ช
์ฌ ใํฌ๋ก์คํ๋ค์คใ = ๋ฅ๋ ฅ ๊ตํ(์ด ์ ์ฒด์ฑ์ ํ์์กฐ๊ฑด)** ยท **ํ์ฉ๊ตฌ cross-harness-boundary = ๊ทธ ๊ฒ์ดํธ์ ์ ์ฉ ๋ฒ์**. ์์ด ์ฐ์ง ๋ง๋ผ. ๐ฅ **โ ๊ธฐ์ค์ด ์๋ฐฉํฅํ์ ๋ง์ถฐ ยซ์ข์์ง๋คยป(๋์จํด์ง๋ ๊ฒ ์๋๋ค).** ํก์๋ฅผ ํ์ฉํ๋ฉด โ(ยซFH ๊ฐ ์ ์ปค์ก๋๊ฐยป)๊ฐ ๊ทธ๋๋ก๋ ๋ฌด๋ ฅํด์ง๋ฏ๋ก: **FH ๋ ยซ๋ซ๋ FH ๊ฒฐํจ์ ์ด๋ฆ์ผ๋ก ๋ ์ ์์ ๋๋งยป ์ปค์ง๋ค.** ์ ๊ท์จ์ด ์๋๋ผ ์ด๋ฏธ ์๋ ์ฆ๊ฑฐ-์๊ณ ๋น๋ ๊ท์จ(`fh_signal_2026-08-16_expedition_two_tracks.md` ยง๊ฒฝ๊ณ 2 โ *"ยซ์ข์ ๋ณด์ฌ์ยป๊ฐ ์๋๋ผ ยซ์ฐ๋ฆฌ ๊ฒฐํจ์ด ๊ทธ๊ฑธ ์๊ตฌํด์ยป"*)์ โ ์ ํ์ ๋ฌธ๊ตฌ๋ก ์น๊ฒฉ์ํจ ๊ฒ์ด๋ค. โ **โ = โด ํธ์ถ๋ก ๋์ฒดํ ๊ฒ์ ์ด๋ฆ์ผ๋ก ๋ ์ ์๊ณ , โต ์๋ก ์ง์ ๊ฒ์ ๊ฐ๊ฐ ๋ซ๋ FH ๊ฒฐํจ์ ์ด๋ฆ์ผ๋ก ๋๋ค.** ์ค๋ ์ค์ : ๋์ฒด = `merge_noop_check.sh`(์ ์ง์๋ค) ยท ์ ์ถ = `--cap-args` ์ฑ๋(๋ซ๋ ๊ฒฐํจ = ยซํธ์ถ ์์ ์ธ์๋ฅผ ์๊ตฌํ๋ ๋ฅ๋ ฅ์ด relay ๋ฅผ ํต๊ณผํ ๋ฐฉ๋ฒ์ด ์๋คยป, ์ค์ธก) + `.git/objects` ๊ฐ์(๋ซ๋ ๊ฒฐํจ = ยซ`writes: read-only` ๊ฑฐ์ง ์ ์ธ์ด VERIFIED ๋ฅผ ๋ฐ๋๋คยป, ์ค์ธก). ๋ ๋ค ์ด๋ฆ์ด ๋ถ๋๋ค. ๐ฅ **์ ์ธ ์์น๋ ๋ ์ข
๋ฅ์ด๊ณ , ๊ธฐ๋ณธ์ ยซ์ด๋ํฐยป๋ค(์ด์์ ๊ฒฐ์ 2026-08-16 โ ์ดํ์ ์ด๊ฑธ ๊ฑฐ๊พธ๋ก ์ ์๋ค).** ์ด์์: *"์ฌ์ฉ์๋ค์ ๋ค๋ค ๋์ ๋ ํฌ์ ์ง์ง ์์ ๊ฑฐ์ผ. **FH ๋ด๋ถ์ ์์ฃผ์ํค๊ฒ ์ง.** ํ์ํ๋ค๋ฉด ๊ฐ์ธ์ฉ ๋ ํฌ๋ก ๋ถ๋ฆฌํด์ ๊ด๋ฆฌํ ๊ฑฐ๊ณ ."* ยท *"๋ก์ปฌ์์ ์์
ํ๊ธฐ ์ํ ๊ฑฐ๋๊น **์ด๋ํฐ๋ ๋ด์ฅ๋์ด ์์ด์ผ์ง.**"* โ **์ด๋ํฐ ์ ์ธ = ๊ธฐ๋ณธ ๊ฒฝ๋ก**(FH ์ `.claude/capabilities/adapters/` + FH ์์ ์คํฌ๋ฆฝํธ, **์ ์ง ์ฑ
์์ FH**, peer ๋ **์ด๋ฆ์ผ๋ก ํด์**ํด tracked ํ์ผ์ ํ ์ ๋๊ฒฝ๋ก๋ฅผ ์ ์ฃ๋๋ค). **์์ ์ ์ธ = ํน๊ถ์ ๊ฒฝ์ฐ** โ ๊ทธ ํ๋ค์ค๋ฅผ ์์ ํ๊ณ **๋์์** ใ์ธ๋ถ ํ๋ค์ค์ ์ธํฐํ์ด์ค๋ฅผ ๋
ธ์ถํ๋คใ๋ฅผ **๊ทธ ํ๋ค์ค ์์ ์ ์ ๋ณธ์ ์ ์์ ๋๋ง**(pmh-dev ๊ฐ ๊ทธ ์ ์ผํ ์ฌ๋ก๋ค). ๐ฅ **์ด ๋ค์ง๊ธฐ๋ ์ค์ธก์ด ๊ฐ์ ํ๋ค**: qasp ์
์ฅ๋ฆฌ๋ทฐ๊ฐ ๋จ์ ๋ ํฌ ์ ์ ์ธ์ REJECT ํ๊ณ (์ ๋ณธ ๊ทผ๊ฑฐ 0๊ฑด ยท ์๋น์ 0๊ณณ ยท n=3 ๊ท์น ์๋ฐ ยท ์กฐ์ง ๋ฏธ๋ฌ ๋
ธ์ถ), gstack ์ **์ ์ด์ ๋จ์ ๊ณต๊ฐ ๋ ํฌ(READ ๊ถํ)๋ผ ํธ์ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅ**ํ๋ค โ ์ฆ ์์ ์ ์ธ์ ยซ๋๋ฌธ ๊ฒฝ์ฐยป๊ฐ ์๋๋ผ **๋๋ถ๋ถ์ ๊ฒฝ์ฐ ์ฑ๋ฆฝ์กฐ์ฐจ ํ์ง ์๋๋ค.** ์ด๋ํฐ๊ฐ ํ์ฉ๋๋ ๊ทผ๊ฑฐ๋ dominance-2 ๊ฐ ์ฐ ๊ฒ์ด๋ค โ ๋ณต์ฌ vs ํธ์ถ์ด **safety ๋๋ฅ **์ด์๊ณ ์ฐจ์ด๋ ยซ์ ๋ณด์ ์ ์ง ์ฑ
์ยป๋ฟ์ด์๋ค. ๋ผ๋ฒจ๊ณผ FH ์์ ๊ฐ ๊ทธ ์ฐจ์ด๋ฅผ ๋ซ๋๋ค. โ ๏ธ **residency ๊ฒฝ๊ณ**: `company` peer ์ ์ด๋ํฐ๋ **tracked ๋ก ๋์ง ์๋๋ค** โ ์ปค๋ฐ ์์ ๊ณต๊ฐํ๋ฉด ์ค์บ์ด floor ์ด์ง๋ง, ํ๋จ์ด ๋จผ์ ๋ค. โ ๏ธ **๋ฏธ๊ฒฐ โ ์ด์์ ๊ฒฐ์ ๋๊ธฐ**: *"์ด์์ ํ๊ฒฝ์์๋ ์์ ์ ์ ๊ฐ๋ฅ. ์ฌ์ค ์ ์๋ ์๋์ผ๋ก ๋ฐ์ ๊ฐ๋ฅ"*. ์ ์์ **์๋ ๋ฐ์**์ ์์จ์ฑ ํ์ฅ์ด๋ผ ยงOperational Adaptation Loop ์ action-class floor ๋ฅผ ๊ทธ๋๋ก ํต๊ณผํด์ผ ํ๋ค โ ํก์ ์ปค๋ฐ ์์ฒด๋ ๊ฐ์ญ์ด์ง๋ง **๊ทธ๊ฒ์ด publish ๋ฅผ ๋จน์ด๋ฉด taint ๊ฐ ์ ํ**๋๊ณ , ๊ทธ ๊ฒฝ์ฐ registry floor ๊ฐ `promotion_eligible` ์ ๊ธํ๋ค. ๋ฐ์ด๋๋ ํํ(์ด์์ ํ๊ฒฝ ํ์ ยท ๊ฐ์ญ ํ๋ฉด ํ์ ยท typed ๊ธฐ๋ก ํ์ ยท ๊ฒ์ดํธ๋ ๊ทธ๋๋ก)๋ก ์ขํ๊ธฐ ์ ์ ์๋ํํ์ง ์๋๋ค. **๋ฏธ๊ตฌ์ถ์ด๋ฉฐ, ๋ฏธ๊ตฌ์ถ์ด๋ผ๊ณ ์ ๋๋ค.**
|
|
291
|
-
| โก | ํ๋ก์ ํธ ์ธํ๋ฒ ์ดํฐ (
|
|
337
|
+
| โก | ํ๋ก์ ํธ ์ธํ๋ฒ ์ดํฐ (**๐ข 2026-08-21**) | context-continuity + judgment-circuit | ๐ข GREEN | **์ ์ ํ๋ฆ์ด ๋ฐฐ์ถํ๊ณ , ๋ฐฐ์ถ๋ฌผ์ด ๋์ ํ๋ค์ค์์ ๋์๋ค.** (a) ๊ตฌํ `chamber_run.sh` 6๋จ๊ณ ๊ฒ์ดํธ (b) known-pair ๋ฌ๋ 18 ๋ ์ธ + ์์ ์ฆ์ธ 16 ๋ ์ธ (c) self-test ์ด๋ก โ RC ์ธ ๋ค๋ฆฌ๋ 2026-08-09 ์ ์ฐ๋ค. **๐ข ๋ก ์ฌ๋ฆฐ ๊ทผ๊ฑฐ๋ ๊ทธ ์์ ๋ท์ด๋ค**: โ **๋ฐ #15 `interslide-dependency-graph` = EMIT + ์์ ์ฆ์ธ `WITNESSED`**(๊ฒ์ดํธ ์ํฐํฉํธ 3๊ฑด์ด verdict ๋ณด๋ค ๋จผ์ ์ปค๋ฐ ๊ณ ์ ; `chamber_witness.sh verify` ์ฌ์คํ ํ์ธ) โ ๋ฐฐ์ถ๋ฌผ์ด **๋์ ํ๋ค์ค์ ๋ฐฐ์ ๋์ด ์ค๋ฌผ ๋ฐํ**(2026-08-21, `preprep` L8 โ ์ 29 ยท HARD ์์กด 4 ยท ๊นจ์ง 0 ยท UNRESOLVED 2) โ **๋ฐฐ์ถ๋ฌผ์ ๋ฏธํด์๋ฅผ ์ฌ์ ์ค์๊ณ ์ ๋ต์์ด ์ ๊นจ์ก๋ค**(ํ๊ธฐ ์ ๊ทํ ์๋ฆฌ โ `S20 โ S9 [OK]`; arm A rc=1 BROKEN ์ ์ง ยท arm B rc=0 ๋ถ๋ณ; ์ง์ง ๋ชจํธํ 1๊ฑด์ ์ ํ๋ฆผ = ์ ์คํ 0) โ advisory ๋๋๋ฆผ ์ปจํธ๋กค ํต๊ณผ(HEAD ํ ๋๋น rcยทUSE ๋ถ๋ณ). ๐ฅ **์ ์ง ์กฐ๊ฑด ์
, ์ง์ฐ์ง ๋ง๋ผ**: (1) **n=1** โ ๋ฐ #14 ๋ EMIT ์ด๋ ์์ ์ฆ์ธ `VOID(TAMPERED)` ๋ผ ๊ทผ๊ฑฐ๋ก ๋ชป ์ฐ๊ณ **๊ทธ ๋ฌธ์๊ฐ ์ค์ค๋ก ๊ทธ๋ ๊ฒ ์ ์๋ค** (2) L8 ์ **advisory ๊ณ ์ **์ด๋ผ ์์ง ยซ์ฌ๋์ด ๋ชป ๋ณธ ๊ฒฐํจ์ ์ก์ยป ์ ์ ์๋ค โ ์ก์ ๊ฒ์ ์๊ธฐ ๋ฏธํด์๋ค (3) ์ ์์ *"formal chamber EMIT ์์ง 0"* ์ **2026-08-20 ๋ถ๋ก stale** ์ด์๋ค(#14ยท#15). ๊ทธ stale ์ด 12์ผ๊ฐ ์ ์กํ ๊ฒ ์์ฒด๊ฐ `[[feedback_rule_misdescribes_its_own_machine]]` ์ฌ๋ก๋ค. ์๋ ์ ํ์ ์ค์ ์ด๋ ฅ์ผ๋ก ๋จ๊ธด๋ค |
|
|
292
338
|
| โก-old | (์ด๋ ฅ) ํ๋ก์ ํธ ์ธํ๋ฒ ์ดํฐ | context-continuity + judgment-circuit | ๐ก PARTIAL | incubation is running โ **stockbattle is being incubated now** (S1 built, mid-flight) + qasp/pmh spin-out precedent + scaffold-emit shipped (doctrine: "emit shipped today as scaffold+approval; the chamber flow is the named target"). **Corrected 2026-08-08** (the old text read "6 runs, 6 KILL โฆ 0/6", which was stale on both counts, and the ledger itself was missing a run): hand-counted from `tracks/_chamber/INDEX.md` โ **9 full runs (#2โ#10), 8 KILL, 1 EMIT** (#1 is a trigger probe, not a full run). Runs #5โ#6 *measured* the emit-worthiness criterion (net-new โง artifact-shaped โง real-data-precision-adequate โง hub-state-independent); run #6 confirmed the graduation-order principle โ hub-internal proof before standalone extraction, never the reverse. **The ๐ก is now held for a different reason than before.** The old reason ("no closed emit-via-incubation yet") is false: run #9 `forge-wiki` emitted and shipped publicly under operator approval with the Pre-Publish gate passed. What is *not* proven is that the **formal chamber flow** produced it โ that run's workspace holds only an `EMISSION_VERDICT.md`, with no `INTENT.md`, `BUDGET.md` or `SIM_NOTES.md`, so the intent/budget/blind-persona gates have no artifact and the verdict was written after the fact. The first run to complete the formal flow end-to-end is #10 (2026-08-08, 3 blind isolated personas) and it KILLed. So: **the identity has fired once, the mechanism has not yet been shown to be what fired it**, and the dominance result every ๐ข owes is still outstanding โ ๐ก |
|
|
293
339
|
|
|
340
|
+
### ยงdigest-routine โ ์ โฃ ํ์ ์ธก์ ๋ด์ฉ (์ญ์ ์๋, ์ด๊ด)
|
|
341
|
+
|
|
342
|
+
`scripts/digest_landing_check.sh` ๋ **๊ธฐ๊ณํ๋ ์ผ์์์
(frontier-digest)์ ์คํฌ๋ฆฌ๋**๋ค.
|
|
343
|
+
์๋ฌธ์ ์ธก์ ์ ๊ทธ๋๋ก ๋ณด์กดํ๋ค: ๋ ์ถ ๋ถ๋ฆฌ(git์ถ์ โ `git log --since` ์ปค๋ฐ์๊ฐ / gitignored
|
|
344
|
+
`tracks/**` โ mtime / dirty-tracked โ `UNMEASURED`)๋ฅผ **๋ ๋ ์ธ์ด ๊ณ ์ **ํ๊ณ , ๋ ๋ฒ์งธ ๋ ์ธ์ด
|
|
345
|
+
์์ผ๋ฉด ยซ์ถ์ ํ์ผ์ ์ ๋ถ ๋ฒ๋ ค negative ๋ง ํต๊ณผยป๋ก ํดํํ๋ค(cross-family ์ง๋ชฉ). self-test
|
|
346
|
+
**20 ๋ ์ธ** ์ด๋ก. ๋ช
์ ์์ฌ: `file-change โ token-introduction`. ํ์ด ์ค์ค๋ก
|
|
347
|
+
*"screener, not an adjudicator โ ํํธ๋ ์ด์ด์ผ ํ๋ค"* ๋ผ๊ณ ์ ์ธํ๋ค.
|
|
348
|
+
|
|
349
|
+
**2026-08-21 ์ถ๊ฐ ์ค์ธก โ ๊ทธ ์ ์ธ์ด ์ค์ ๋ก ๋ฌผ์๋ค**:
|
|
350
|
+
```
|
|
351
|
+
frontier_digest_2026_08_20.md ๊ณ๊ธฐ rc=0 ยซ3๊ฑด ์ ๋ถ ์ฐฉ์งยป โ ์๊ฒ์ฆ 0/3 ์ฐฉ์ง
|
|
352
|
+
ํ๋ณด 1ยท2ยท3 ์ด ๊ฐ์ ์ฐฉ์ง ์ง์ ์ ์ง์ ํด๋๊ณ , ์ธ ์๋ฆฌ ๋ชจ๋ ๋น์ด ์๋ค(์ปจํธ๋กค ๋๋ฐ)
|
|
353
|
+
๋น๊ณต๊ฐ companion store ๋ ํ์ธ โ ๊ฑฐ๊ธฐ๋ ์๋ค(์ค์ฝํ ๋ฐ ์ฐฉ์ง ์๋)
|
|
354
|
+
๊ฐ์ ํ๋ณด(2608.09096ยท2608.06301)๊ฐ 08-17 digest ์๋ ์ต์ปค๊ฒ์ฆ๊น์ง ๋ผ์ ์ฌ๋ผ๊ฐ๊ณ ๊ทธ๋๋ ๋ฏธ์ฐฉ์ง
|
|
355
|
+
```
|
|
356
|
+
๐ฅ **์ด๊ฒ์ ยซ๊ณ๊ธฐ ๊ฒฐํจยป์ผ๋ก ์ ์ง ๋ง๋ผ** โ ํ์ด ์ด๋ฏธ ์คํฌ๋ฆฌ๋๋ผ๊ณ ์ ์ธํ๊ณ ยซํํธ๋ฅผ ์ด์ด๋ผยป๊ณ
|
|
357
|
+
์ง์ํ๋ค. ์๋ก์ด ๊ฒ์ ๊ฒฐํจ์ด ์๋๋ผ **๋น์จ(1๊ฐ digest 3/3)๊ณผ ๋ฐ๋ณต(๊ฐ์ ํ๋ณด 2ํ ๋ฏธ์ฐฉ์ง)**์ด๋ค.
|
|
358
|
+
โ ์ผ์์์
์ชฝ ์์ฌ๋ก ๊ธฐ๋ก: **ํ๋ฉดํ๋ ๋๋๋ฐ ๋ซํ์ง ์๋๋ค.** ๊ทธ๋ฆฌ๊ณ ์ด ๊ฒฐ๊ณผ๋ **โฃ ์ ํ์ ์
|
|
359
|
+
์ ๊ฑธ๋ฆฐ๋ค** โ ์ฌ์ ์๋ก ๋์์ด ๊ฐ๋ ธ๊ธฐ ๋๋ฌธ์ด๋ค.
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
294
363
|
### <a name="b-layering"></a>ยงโท-layering โ **ํ๋ก์ ํธ ๋ถ์คํฐ**๋ ์ฌ์ฏ ๋ฒ์งธ ํ์ด ์๋๋ผ **๋ค๋ฅธ ์ธต**์ด๋ค (์ด์์, 2026-08-16)
|
|
295
364
|
|
|
296
365
|
> ๐ฅ **๋จผ์ โ ์ด ์ ์ ์๊ณ๋๋ก ์ฝ์ง ๋ง๋ผ. ์ด ํ๋ ๋ถ๋ฅํ์ด ์๋๋ผ ์ฌ๊ณ ๋ชฉ๋ก์ด๋ค.**
|
|
@@ -635,7 +704,7 @@ incubator entry absorbed into deep-clarify) โ the identity-โก weakness surfac
|
|
|
635
704
|
**Verdict (2026-08-09 โ supersedes the 2026-07-14 line)**: FH is tagged **`v0.1.0` = honest baseline**,
|
|
636
705
|
not all-green. ~~โขโค are ๐ข, **โ โกโฃ are ๐ต RC**~~ โ **2026-08-16: โ โขโค are ๐ข, โกโฃ are ๐ต RC**,
|
|
637
706
|
**none ๐ด** โ the `v0.1.0` notes state this and make no
|
|
638
|
-
all-green claim (per the refined 0.xโ1.0 mapping above). **`v1.0.0` remains the all-green target.**
|
|
707
|
+
all-green claim (per the refined 0.xโ1.0 mapping above). **`identity-v1.0.0` remains the all-green target.**
|
|
639
708
|
๐ฅ **โ ์ ๐ข ์ ๊ธฐ์ค์ด ๋ฐ๋ ๊ฒฐ๊ณผ๋ค** โ ์ dominance ์ ๋ก ์ฌ๋ฉด ์ค๋๋ ๐ต ์ด๊ณ , ๋ ๋ฒ ์๊ณ ๋ ๋ค
|
|
640
709
|
๋ฏธ์ฑ๋ฆฝ์ด์๋ค. ๋ฌด์์ด ์ ๋ฐ๋์๋์ง๋ [ยงโ -2026-08-16](#id1-20260816) ์ ์ฝ์ด๋ผ. **๊ทธ ํ์ด ๋ช
์
|
|
641
710
|
์์ฌ ์
(์ธ๋ถ ์์ ์ ์ธ n=1 ยท qasp ๋ณด๋ฅ ยท (d) ๋ฏธํด๊ฒฐ)์ ํจ๊ป ์ง๊ณ ์๊ณ , ๊ทธ๊ฑธ ๋นผ๊ณ ์ธ์ฉํ์ง ๋ง๋ผ.**
|