@lifeaitools/rdc-skills 0.24.38 → 0.24.41

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 (196) hide show
  1. package/.claude/settings.json +15 -15
  2. package/.claude-plugin/marketplace.json +21 -21
  3. package/.claude-plugin/plugin.json +1371 -1371
  4. package/.github/workflows/publish.yml +34 -34
  5. package/.github/workflows/self-test.yml +58 -58
  6. package/CHANGELOG.md +310 -310
  7. package/LICENSE +21 -21
  8. package/MANIFEST.md +221 -221
  9. package/README.md +376 -375
  10. package/README.sandbox.md +3 -3
  11. package/RELEASE.md +42 -0
  12. package/assets/watcher/viewer.html +164 -164
  13. package/bin/rdc-skills-mcp.mjs +316 -316
  14. package/commands/build.md +183 -183
  15. package/commands/collab.md +180 -180
  16. package/commands/deploy.md +152 -152
  17. package/commands/design.md +31 -31
  18. package/commands/edit.md +28 -28
  19. package/commands/fixit.md +124 -124
  20. package/commands/handoff.md +173 -173
  21. package/commands/help.md +95 -95
  22. package/commands/overnight.md +220 -220
  23. package/commands/plan.md +158 -158
  24. package/commands/preplan.md +131 -131
  25. package/commands/prototype.md +145 -145
  26. package/commands/release.md +49 -49
  27. package/commands/report.md +99 -99
  28. package/commands/review.md +120 -120
  29. package/commands/self-test.md +113 -113
  30. package/commands/status.md +86 -86
  31. package/commands/watch.md +98 -98
  32. package/commands/workitems.md +137 -137
  33. package/git-sha.json +1 -1
  34. package/guides/agent-bootstrap.md +295 -295
  35. package/guides/agents/backend.md +104 -104
  36. package/guides/agents/content.md +94 -94
  37. package/guides/agents/cs2.md +56 -56
  38. package/guides/agents/data.md +87 -87
  39. package/guides/agents/design.md +77 -77
  40. package/guides/agents/frontend.md +92 -92
  41. package/guides/agents/infrastructure.md +81 -81
  42. package/guides/agents/setup.md +281 -281
  43. package/guides/agents/verify.md +151 -151
  44. package/guides/agents/viz.md +106 -106
  45. package/guides/backend.md +146 -146
  46. package/guides/content.md +147 -147
  47. package/guides/cs2.md +190 -190
  48. package/guides/data.md +123 -123
  49. package/guides/design.md +116 -116
  50. package/guides/engineering-behavior.md +43 -43
  51. package/guides/escalation-protocol.md +125 -125
  52. package/guides/frontend.md +151 -151
  53. package/guides/history-md-spec.md +297 -297
  54. package/guides/infrastructure.md +179 -179
  55. package/guides/lessons-learned-spec.md +151 -145
  56. package/guides/output-contract.md +108 -108
  57. package/guides/publish-md-spec.md +289 -289
  58. package/guides/rdc-skills-startup.md +30 -30
  59. package/guides/verify.md +11 -11
  60. package/hooks/check-cwd.js +31 -31
  61. package/hooks/check-rdc-environment.js +164 -164
  62. package/hooks/check-services.js +6 -6
  63. package/hooks/check-stale-work-items.js +19 -19
  64. package/hooks/foreground-process-gate.js +128 -128
  65. package/hooks/gate-watchdog-selfcheck.js +257 -257
  66. package/hooks/hook-logger.js +25 -25
  67. package/hooks/lib/run-evidence-gate.mjs +241 -241
  68. package/hooks/no-stop-open-epics.js +127 -127
  69. package/hooks/post-tool-batch-gate.js +203 -203
  70. package/hooks/post-work-check.js +21 -21
  71. package/hooks/postcompact-log.js +13 -13
  72. package/hooks/precompact-log.js +13 -13
  73. package/hooks/rate-limit-retry.js +46 -46
  74. package/hooks/rdc-invocation-marker.js +157 -157
  75. package/hooks/rdc-output-contract-gate.js +94 -94
  76. package/hooks/require-work-item-on-commit.js +294 -294
  77. package/hooks/restart-brief.js +19 -19
  78. package/hooks/run-hidden-hook.ps1 +47 -47
  79. package/hooks/task-completed-gate.js +274 -274
  80. package/hooks/work-item-exit-gate.js +944 -944
  81. package/lib/catalog.mjs +236 -236
  82. package/lib/cloud-rewrite.mjs +155 -155
  83. package/package.json +57 -56
  84. package/rules/work-items-rpc.md +520 -520
  85. package/scaffold/templates/HISTORY.md.template +39 -39
  86. package/scaffold/templates/PUBLISH.md.template +21 -21
  87. package/scaffold/templates/brochure-studio-default.html +70 -70
  88. package/scripts/acceptance.mjs +502 -502
  89. package/scripts/fixtures/guides/bad-guide.md +15 -15
  90. package/scripts/fixtures/guides-clean/good-guide.md +16 -16
  91. package/scripts/install-rdc-skills.js +1289 -1289
  92. package/scripts/install.ps1 +202 -202
  93. package/scripts/install.sh +132 -132
  94. package/scripts/lib/assertions.mjs +287 -287
  95. package/scripts/lib/manifest-schema.mjs +754 -754
  96. package/scripts/lib/runner.mjs +465 -465
  97. package/scripts/lib/sandbox.mjs +435 -435
  98. package/scripts/prepack.mjs +32 -32
  99. package/scripts/rdc-brochure.mjs +482 -464
  100. package/scripts/rdc-design-cli.mjs +134 -134
  101. package/scripts/rebuild-mcp.mjs +107 -107
  102. package/scripts/self-test.mjs +1460 -1460
  103. package/scripts/stamp-git-sha.mjs +29 -29
  104. package/scripts/test-guide-validator.mjs +196 -196
  105. package/scripts/test-rdc-hooks.mjs +145 -145
  106. package/scripts/uninstall.ps1 +77 -77
  107. package/scripts/uninstall.sh +69 -69
  108. package/scripts/update.ps1 +43 -43
  109. package/scripts/update.sh +43 -43
  110. package/scripts/validate-place-histories.js +461 -461
  111. package/scripts/validate-publish-manifests.js +424 -424
  112. package/scripts/watch-init.mjs +100 -100
  113. package/skills/brochure/SKILL.md +107 -107
  114. package/skills/build/SKILL.md +563 -563
  115. package/skills/channel-formatter/SKILL.md +533 -533
  116. package/skills/co-develop/SKILL.md +196 -196
  117. package/skills/collab/SKILL.md +239 -239
  118. package/skills/convert/SKILL.md +140 -140
  119. package/skills/deploy/SKILL.md +541 -541
  120. package/skills/design/SKILL.md +211 -211
  121. package/skills/design/reference/ownership.md +16 -16
  122. package/skills/design/reference/rampa.md +92 -92
  123. package/skills/design/reference/studio-model.md +153 -153
  124. package/skills/edit/SKILL.md +98 -98
  125. package/skills/fixit/SKILL.md +165 -165
  126. package/skills/fs-mcp/SKILL.md +148 -148
  127. package/skills/handoff/SKILL.md +236 -200
  128. package/skills/help/SKILL.md +143 -143
  129. package/skills/housekeeping/SKILL.md +219 -160
  130. package/skills/lifeai-brochure-author/SKILL.md +340 -340
  131. package/skills/overnight/SKILL.md +251 -251
  132. package/skills/plan/SKILL.md +345 -345
  133. package/skills/preplan/SKILL.md +90 -90
  134. package/skills/prototype/SKILL.md +150 -150
  135. package/skills/rdc-brochurify/SKILL.md +245 -245
  136. package/skills/rdc-extract-verifier-rules/SKILL.md +191 -191
  137. package/skills/release/SKILL.md +140 -140
  138. package/skills/report/SKILL.md +100 -100
  139. package/skills/review/SKILL.md +152 -152
  140. package/skills/rpms-filemap/SKILL.cloud.md +111 -111
  141. package/skills/rpms-filemap/SKILL.md +111 -111
  142. package/skills/self-test/SKILL.md +132 -132
  143. package/skills/status/SKILL.md +99 -99
  144. package/skills/terminal-config/SKILL.md +62 -62
  145. package/skills/tests/MATRIX.md +54 -54
  146. package/skills/tests/README.md +47 -47
  147. package/skills/tests/rdc-brochure.test.json +34 -34
  148. package/skills/tests/rdc-build.test.json +36 -36
  149. package/skills/tests/rdc-channel-formatter.test.json +45 -45
  150. package/skills/tests/rdc-co-develop.test.json +29 -29
  151. package/skills/tests/rdc-collab.test.json +29 -29
  152. package/skills/tests/rdc-convert.test.json +35 -35
  153. package/skills/tests/rdc-deploy.test.json +30 -30
  154. package/skills/tests/rdc-design.test.json +27 -27
  155. package/skills/tests/rdc-edit.test.json +29 -29
  156. package/skills/tests/rdc-fixit.test.json +36 -36
  157. package/skills/tests/rdc-fs-mcp.test.json +36 -36
  158. package/skills/tests/rdc-handoff.test.json +28 -28
  159. package/skills/tests/rdc-help.test.json +29 -29
  160. package/skills/tests/rdc-housekeeping.test.json +32 -28
  161. package/skills/tests/rdc-lifeai-brochure-author.test.json +35 -35
  162. package/skills/tests/rdc-overnight.test.json +37 -37
  163. package/skills/tests/rdc-plan.test.json +27 -27
  164. package/skills/tests/rdc-preplan.test.json +31 -31
  165. package/skills/tests/rdc-prototype.test.json +28 -28
  166. package/skills/tests/rdc-rdc-brochurify.test.json +23 -23
  167. package/skills/tests/rdc-rdc-extract-verifier-rules.test.json +34 -34
  168. package/skills/tests/rdc-release.test.json +29 -29
  169. package/skills/tests/rdc-report.test.json +28 -28
  170. package/skills/tests/rdc-review.test.json +29 -29
  171. package/skills/tests/rdc-rpms-filemap.test.json +28 -28
  172. package/skills/tests/rdc-self-test.test.json +24 -24
  173. package/skills/tests/rdc-status.test.json +29 -29
  174. package/skills/tests/rdc-terminal-config.test.json +29 -29
  175. package/skills/tests/rdc-watch.test.json +24 -24
  176. package/skills/tests/rdc-workitems.test.json +27 -27
  177. package/skills/watch/SKILL.md +97 -97
  178. package/skills/workitems/SKILL.md +151 -151
  179. package/tests/acceptance.test.mjs +59 -59
  180. package/tests/channel-formatter.contract.test.mjs +251 -251
  181. package/tests/curl-surface.test.mjs +289 -289
  182. package/tests/harness-gates.test.mjs +325 -325
  183. package/tests/help-surface.test.mjs +61 -61
  184. package/tests/housekeeping-lessons-triage.test.mjs +49 -0
  185. package/tests/install-rdc-skills.test.mjs +49 -49
  186. package/tests/lessons-pipeline-contract.test.mjs +26 -0
  187. package/tests/manifest-contract-fields.test.mjs +78 -78
  188. package/tests/mcp.test.mjs +271 -271
  189. package/tests/rdc-brochure.test.mjs +125 -0
  190. package/tests/release-contract.test.mjs +16 -0
  191. package/tests/require-work-item-on-commit.test.mjs +162 -162
  192. package/tests/run-evidence-gate.test.mjs +82 -82
  193. package/tests/skill-test-matrix.test.mjs +66 -66
  194. package/tests/validate-skills.js +27 -27
  195. package/tests/work-item-exit-gate-l2.test.mjs +368 -368
  196. package/tests/work-item-exit-gate-l3.test.mjs +197 -197
package/guides/design.md CHANGED
@@ -1,116 +1,116 @@
1
- # Design Agent Guide — Base
2
- > Role-based context for design system, branding, and visual agents. Generic patterns across projects.
3
-
4
- ---
5
-
6
- ## Design Principles
7
-
8
- Projects typically define core design principles. Check the overlay for:
9
- - Philosophy guiding all visual decisions
10
- - Accessibility standards
11
- - Motion/animation philosophy
12
- - Dark/light mode strategy
13
- - Tone and voice guidelines
14
-
15
- ---
16
-
17
- ## Brand Palettes
18
-
19
- The project specifies:
20
- - Primary colors per brand
21
- - Accent/secondary colors
22
- - Neutrals and grays
23
- - Dark mode vs light mode variations
24
- - Color semantics (error, success, warning, etc.)
25
-
26
- Check the overlay for exact hex values and CSS variable names.
27
-
28
- ---
29
-
30
- ## Token Inheritance / Design Tokens
31
-
32
- Some projects use design token systems. The overlay specifies:
33
- - Whether tokens are centralized or distributed
34
- - How tokens are versioned
35
- - Export formats (JSON, CSS, Figma, etc.)
36
- - Token hierarchy and relationships
37
-
38
- ---
39
-
40
- ## Typography
41
-
42
- The project specifies:
43
- - Primary UI font(s)
44
- - Display/heading font
45
- - Mono font for code
46
- - Type scale (sizes and weights)
47
- - Line heights and letter spacing
48
-
49
- Never hardcode `font-family` — always use tokens or CSS variables.
50
-
51
- ---
52
-
53
- ## Component Variant Axes
54
-
55
- Most design systems define variant axes. Check overlay for which axes apply:
56
- - Brand / product line
57
- - Visual style (default, minimal, heritage, etc.)
58
- - Size and density
59
- - Shape (rounded, sharp, pill, etc.)
60
- - Motion (static, subtle, rich)
61
- - State (default, hover, disabled, etc.)
62
-
63
- Every component should support relevant axes on day one.
64
-
65
- ---
66
-
67
- ## OG Images / Social Cards
68
-
69
- The project specifies:
70
- - Dimensions (1200×630 is standard)
71
- - Format (PNG, JPG)
72
- - Design spec (fonts, colors, layout)
73
- - Generation process (Python/Pillow, Node, etc.)
74
- - File location and naming convention
75
-
76
- ---
77
-
78
- ## Asset Organization
79
-
80
- The project specifies:
81
- - Where to store images (folder structure)
82
- - Naming convention (kebab-case patterns)
83
- - File formats (WebP for photos, SVG for icons, etc.)
84
- - Optimization requirements
85
-
86
- ---
87
-
88
- ## Animation and Motion
89
-
90
- The project specifies:
91
- - Whether animations are used (CRUD vs public pages)
92
- - Motion library (Framer, Aceternity, custom, etc.)
93
- - Easing and duration tokens
94
- - `prefers-reduced-motion` compliance
95
-
96
- ---
97
-
98
- ## Accessibility
99
-
100
- The project specifies:
101
- - WCAG compliance level (A, AA, AAA)
102
- - Color contrast requirements
103
- - Focus indicators
104
- - Keyboard navigation patterns
105
- - Screen reader expectations
106
-
107
- ---
108
-
109
- ## Specialist Context — Read Project Overlay
110
-
111
- Your task may require reading additional project-specific guides for:
112
- - Brand system architecture (token inheritance, export)
113
- - OG image generation scripts
114
- - Design token tools and workflows
115
- - Specific app brand palettes
116
- - Component inventory and patterns
1
+ # Design Agent Guide — Base
2
+ > Role-based context for design system, branding, and visual agents. Generic patterns across projects.
3
+
4
+ ---
5
+
6
+ ## Design Principles
7
+
8
+ Projects typically define core design principles. Check the overlay for:
9
+ - Philosophy guiding all visual decisions
10
+ - Accessibility standards
11
+ - Motion/animation philosophy
12
+ - Dark/light mode strategy
13
+ - Tone and voice guidelines
14
+
15
+ ---
16
+
17
+ ## Brand Palettes
18
+
19
+ The project specifies:
20
+ - Primary colors per brand
21
+ - Accent/secondary colors
22
+ - Neutrals and grays
23
+ - Dark mode vs light mode variations
24
+ - Color semantics (error, success, warning, etc.)
25
+
26
+ Check the overlay for exact hex values and CSS variable names.
27
+
28
+ ---
29
+
30
+ ## Token Inheritance / Design Tokens
31
+
32
+ Some projects use design token systems. The overlay specifies:
33
+ - Whether tokens are centralized or distributed
34
+ - How tokens are versioned
35
+ - Export formats (JSON, CSS, Figma, etc.)
36
+ - Token hierarchy and relationships
37
+
38
+ ---
39
+
40
+ ## Typography
41
+
42
+ The project specifies:
43
+ - Primary UI font(s)
44
+ - Display/heading font
45
+ - Mono font for code
46
+ - Type scale (sizes and weights)
47
+ - Line heights and letter spacing
48
+
49
+ Never hardcode `font-family` — always use tokens or CSS variables.
50
+
51
+ ---
52
+
53
+ ## Component Variant Axes
54
+
55
+ Most design systems define variant axes. Check overlay for which axes apply:
56
+ - Brand / product line
57
+ - Visual style (default, minimal, heritage, etc.)
58
+ - Size and density
59
+ - Shape (rounded, sharp, pill, etc.)
60
+ - Motion (static, subtle, rich)
61
+ - State (default, hover, disabled, etc.)
62
+
63
+ Every component should support relevant axes on day one.
64
+
65
+ ---
66
+
67
+ ## OG Images / Social Cards
68
+
69
+ The project specifies:
70
+ - Dimensions (1200×630 is standard)
71
+ - Format (PNG, JPG)
72
+ - Design spec (fonts, colors, layout)
73
+ - Generation process (Python/Pillow, Node, etc.)
74
+ - File location and naming convention
75
+
76
+ ---
77
+
78
+ ## Asset Organization
79
+
80
+ The project specifies:
81
+ - Where to store images (folder structure)
82
+ - Naming convention (kebab-case patterns)
83
+ - File formats (WebP for photos, SVG for icons, etc.)
84
+ - Optimization requirements
85
+
86
+ ---
87
+
88
+ ## Animation and Motion
89
+
90
+ The project specifies:
91
+ - Whether animations are used (CRUD vs public pages)
92
+ - Motion library (Framer, Aceternity, custom, etc.)
93
+ - Easing and duration tokens
94
+ - `prefers-reduced-motion` compliance
95
+
96
+ ---
97
+
98
+ ## Accessibility
99
+
100
+ The project specifies:
101
+ - WCAG compliance level (A, AA, AAA)
102
+ - Color contrast requirements
103
+ - Focus indicators
104
+ - Keyboard navigation patterns
105
+ - Screen reader expectations
106
+
107
+ ---
108
+
109
+ ## Specialist Context — Read Project Overlay
110
+
111
+ Your task may require reading additional project-specific guides for:
112
+ - Brand system architecture (token inheritance, export)
113
+ - OG image generation scripts
114
+ - Design token tools and workflows
115
+ - Specific app brand palettes
116
+ - Component inventory and patterns
@@ -1,43 +1,43 @@
1
- # Engineering Behavior
2
-
3
- Use this with `agent-bootstrap.md` for implementation and review work. These
4
- rules adapt general coding-agent hygiene into the RDC work-item contract.
5
-
6
- ## Before Editing
7
-
8
- - State material assumptions in the work-item report; ask or block when the
9
- ambiguity changes architecture, data shape, security, or user-visible scope.
10
- - Prefer the smallest change that satisfies the assigned checklist rows.
11
- - Do not add features, abstractions, configurability, or fallback behavior that
12
- is not required by the work item.
13
- - If a simpler path exists than the apparent request, report the tradeoff before
14
- widening the implementation.
15
-
16
- ## While Editing
17
-
18
- - Stay inside the assigned files, package, route, or work-item boundary.
19
- - Match the local style and contracts already in the touched files.
20
- - Do not reformat, rename, or refactor adjacent code unless the checklist row
21
- explicitly requires it.
22
- - Clean up only the unused imports, variables, files, or branches created by
23
- your own change.
24
- - If existing code looks dead or wrong but is outside scope, list it as a
25
- blocker or follow-up. Do not remove it.
26
-
27
- ## Verification
28
-
29
- - Every completed row needs evidence: test output, route probe, SQL result,
30
- screenshot artifact, type-check output, CLI transcript, or reviewer citation.
31
- - Finding an existing file is not evidence. Verify the required behavior.
32
- - Tick each `decomp-*` and `test-*` checklist item immediately after proving
33
- that exact behavior. Do not batch ticks at the end.
34
- - Record assumptions, deviations, uncertainty, blockers, files changed, and
35
- verification in `submit_implementation_report()` before moving to `review`.
36
-
37
- ## Escalation
38
-
39
- - Stop and report `BLOCKED` when the fix requires files outside scope, a broader
40
- architectural choice, a missing credential, or a second repeated failure.
41
- - In unattended mode, choose the most conservative valid path only when the
42
- acceptance criteria remain unchanged; otherwise escalate through the advisor
43
- path required by the active skill.
1
+ # Engineering Behavior
2
+
3
+ Use this with `agent-bootstrap.md` for implementation and review work. These
4
+ rules adapt general coding-agent hygiene into the RDC work-item contract.
5
+
6
+ ## Before Editing
7
+
8
+ - State material assumptions in the work-item report; ask or block when the
9
+ ambiguity changes architecture, data shape, security, or user-visible scope.
10
+ - Prefer the smallest change that satisfies the assigned checklist rows.
11
+ - Do not add features, abstractions, configurability, or fallback behavior that
12
+ is not required by the work item.
13
+ - If a simpler path exists than the apparent request, report the tradeoff before
14
+ widening the implementation.
15
+
16
+ ## While Editing
17
+
18
+ - Stay inside the assigned files, package, route, or work-item boundary.
19
+ - Match the local style and contracts already in the touched files.
20
+ - Do not reformat, rename, or refactor adjacent code unless the checklist row
21
+ explicitly requires it.
22
+ - Clean up only the unused imports, variables, files, or branches created by
23
+ your own change.
24
+ - If existing code looks dead or wrong but is outside scope, list it as a
25
+ blocker or follow-up. Do not remove it.
26
+
27
+ ## Verification
28
+
29
+ - Every completed row needs evidence: test output, route probe, SQL result,
30
+ screenshot artifact, type-check output, CLI transcript, or reviewer citation.
31
+ - Finding an existing file is not evidence. Verify the required behavior.
32
+ - Tick each `decomp-*` and `test-*` checklist item immediately after proving
33
+ that exact behavior. Do not batch ticks at the end.
34
+ - Record assumptions, deviations, uncertainty, blockers, files changed, and
35
+ verification in `submit_implementation_report()` before moving to `review`.
36
+
37
+ ## Escalation
38
+
39
+ - Stop and report `BLOCKED` when the fix requires files outside scope, a broader
40
+ architectural choice, a missing credential, or a second repeated failure.
41
+ - In unattended mode, choose the most conservative valid path only when the
42
+ acceptance criteria remain unchanged; otherwise escalate through the advisor
43
+ path required by the active skill.
@@ -1,125 +1,125 @@
1
- # Truth-Gain Escalation Protocol — Claude ↔ Codex
2
-
3
- > Shared governance protocol for peer agent collaboration. Referenced by
4
- > `rdc:co-develop` and (when built) `rdc:ccandme`.
5
- > Approved: option-1 — shared guide + ref from both skills; trigger = two
6
- > consecutive sub-threshold rounds. Interview: 2026-06-07 in this session.
7
-
8
- ---
9
-
10
- ## Purpose
11
-
12
- Two capable agents debating a question can spend unbounded rounds for shrinking
13
- returns. This protocol bounds the debate: when an exchange stops materially
14
- moving the answer, the agents **stop arguing and decide** — via a scored rubric
15
- for ordinary decisions, or by escalating to the human for critical ones. Every
16
- decision leaves an auditable record (bridge-mode Rule 4: deterministic,
17
- replayable, human-in-the-loop).
18
-
19
- It governs any governed co-development or deep-planning exchange:
20
-
21
- - `rdc:co-develop` — headless clauth/HTTP JSON-envelope transport
22
- - `rdc:ccandme` — visible WezTerm routing (proposed)
23
-
24
- ---
25
-
26
- ## 1. Truth-gain (Δ) per round
27
-
28
- After each peer round, the **receiving** agent rates the round's marginal
29
- truth-gain:
30
-
31
- > **Δ = the fraction of remaining decision-relevant uncertainty that this
32
- > exchange actually closed** — through new evidence, a corrected error, a
33
- > resolved disagreement, or a narrowed option set.
34
-
35
- Δ measures whether the **answer moved**, not whether the agents talked.
36
- Restating a position, agreeing without adding, or circling = Δ ≈ 0.
37
-
38
- ---
39
-
40
- ## 2. Stop trigger — two consecutive sub-5% rounds
41
-
42
- A round is **sub-threshold** only when **both** agents independently rate
43
- Δ < 5%. If either agent still sees ≥ 5% gain, the dialogue continues — this
44
- resolves "who owns Δ?": neither agent owns it unilaterally; the debate stops
45
- only when both agree it is thin.
46
-
47
- The trigger fires after **two consecutive sub-threshold rounds**. One thin round
48
- can be rescued by a strong follow-up; two in a row means the dialogue has
49
- converged or stalled.
50
-
51
- Convergence counts: mutual agreement at Δ < 5% is a valid stop (the answer is
52
- settled, not stalled). Record it as a decision and proceed — no rubric needed.
53
-
54
- ---
55
-
56
- ## 3. On trigger → scored rubric (stop debating)
57
-
58
- When the trigger fires on an *unresolved* question, do **not** keep debating.
59
- Jointly construct a rubric:
60
-
61
- 1. **Enumerate live options**, including the status quo / do-nothing.
62
- 2. **Define 3–6 weighted criteria.** Default set: correctness, reversibility,
63
- bridge-mode fit, cost, risk, time. Weights sum to 1.0.
64
- 3. **Each agent scores every option independently** (no peeking at the peer's
65
- sheet) on each criterion.
66
- 4. **Combine** by weighted sum; the higher combined score wins.
67
- 5. **Record both scoresheets** verbatim as evidence — they are the audit trail.
68
-
69
- ---
70
-
71
- ## 4. Criticality gate
72
-
73
- Classify the pending decision:
74
-
75
- - **Non-critical** → adopt the rubric winner. Record the decision plus both
76
- scoresheets. Proceed.
77
- - **Critical** → do **not** auto-adopt. Escalate **HITL** (human-in-the-loop):
78
- emit a human decision item containing the rubric, both scoresheets,
79
- agreements, disagreements, and a single recommendation. Then **wait** for the
80
- human's decision.
81
-
82
- ### Critical = any of:
83
-
84
- - a trigger in `.claude/rules/architectural-change-approval.md`
85
- - production / deploy-facing change
86
- - security / credentials
87
- - destructive schema (DROP / RENAME / reshape)
88
- - money, credits, valuations
89
- - governance or source-of-truth definition
90
- - **rubric tie**, or agents still diverge past a one-rank margin after scoring
91
- - high irreversibility (hard or impossible to undo)
92
-
93
- When in doubt, treat it as critical.
94
-
95
- ---
96
-
97
- ## 5. HITL sink — interim reality
98
-
99
- The intended sink is the `human_items` **decision table** described in
100
- `docs/systems/claude-workflow/HUMAN-INBOX.md`.
101
-
102
- **As of 2026-06-07 that table is not built** (verified: no `human_items`
103
- relation exists; only `codeflow_policy_decisions`). Until it ships:
104
-
105
- - HITL = surface the rubric + both scoresheets + recommendation to Dave
106
- in-session, and record it as a `work_item` note and/or CodeFlow memory.
107
- - Migrate these records to `human_items` decision rows once that surface exists.
108
-
109
- Do **not** treat the missing table as a reason to auto-adopt a critical
110
- decision (bridge-mode: absence of an artifact is not licence for drift —
111
- build/route around it, keep the human in the loop).
112
-
113
- ---
114
-
115
- ## Acceptance criteria
116
-
117
- A session that uses this protocol must, in its report, show:
118
-
119
- 1. Δ ratings per round from both agents (or a note that convergence was reached).
120
- 2. If the trigger fired: the rubric — options, weighted criteria, both
121
- scoresheets, combined result.
122
- 3. The criticality classification and which trigger(s) matched.
123
- 4. For critical decisions: the HITL record (human item / interim note) and the
124
- human's decision, or `status: awaiting_human`.
125
- 5. No critical decision auto-adopted without a human decision on record.
1
+ # Truth-Gain Escalation Protocol — Claude ↔ Codex
2
+
3
+ > Shared governance protocol for peer agent collaboration. Referenced by
4
+ > `rdc:co-develop` and (when built) `rdc:ccandme`.
5
+ > Approved: option-1 — shared guide + ref from both skills; trigger = two
6
+ > consecutive sub-threshold rounds. Interview: 2026-06-07 in this session.
7
+
8
+ ---
9
+
10
+ ## Purpose
11
+
12
+ Two capable agents debating a question can spend unbounded rounds for shrinking
13
+ returns. This protocol bounds the debate: when an exchange stops materially
14
+ moving the answer, the agents **stop arguing and decide** — via a scored rubric
15
+ for ordinary decisions, or by escalating to the human for critical ones. Every
16
+ decision leaves an auditable record (bridge-mode Rule 4: deterministic,
17
+ replayable, human-in-the-loop).
18
+
19
+ It governs any governed co-development or deep-planning exchange:
20
+
21
+ - `rdc:co-develop` — headless clauth/HTTP JSON-envelope transport
22
+ - `rdc:ccandme` — visible WezTerm routing (proposed)
23
+
24
+ ---
25
+
26
+ ## 1. Truth-gain (Δ) per round
27
+
28
+ After each peer round, the **receiving** agent rates the round's marginal
29
+ truth-gain:
30
+
31
+ > **Δ = the fraction of remaining decision-relevant uncertainty that this
32
+ > exchange actually closed** — through new evidence, a corrected error, a
33
+ > resolved disagreement, or a narrowed option set.
34
+
35
+ Δ measures whether the **answer moved**, not whether the agents talked.
36
+ Restating a position, agreeing without adding, or circling = Δ ≈ 0.
37
+
38
+ ---
39
+
40
+ ## 2. Stop trigger — two consecutive sub-5% rounds
41
+
42
+ A round is **sub-threshold** only when **both** agents independently rate
43
+ Δ < 5%. If either agent still sees ≥ 5% gain, the dialogue continues — this
44
+ resolves "who owns Δ?": neither agent owns it unilaterally; the debate stops
45
+ only when both agree it is thin.
46
+
47
+ The trigger fires after **two consecutive sub-threshold rounds**. One thin round
48
+ can be rescued by a strong follow-up; two in a row means the dialogue has
49
+ converged or stalled.
50
+
51
+ Convergence counts: mutual agreement at Δ < 5% is a valid stop (the answer is
52
+ settled, not stalled). Record it as a decision and proceed — no rubric needed.
53
+
54
+ ---
55
+
56
+ ## 3. On trigger → scored rubric (stop debating)
57
+
58
+ When the trigger fires on an *unresolved* question, do **not** keep debating.
59
+ Jointly construct a rubric:
60
+
61
+ 1. **Enumerate live options**, including the status quo / do-nothing.
62
+ 2. **Define 3–6 weighted criteria.** Default set: correctness, reversibility,
63
+ bridge-mode fit, cost, risk, time. Weights sum to 1.0.
64
+ 3. **Each agent scores every option independently** (no peeking at the peer's
65
+ sheet) on each criterion.
66
+ 4. **Combine** by weighted sum; the higher combined score wins.
67
+ 5. **Record both scoresheets** verbatim as evidence — they are the audit trail.
68
+
69
+ ---
70
+
71
+ ## 4. Criticality gate
72
+
73
+ Classify the pending decision:
74
+
75
+ - **Non-critical** → adopt the rubric winner. Record the decision plus both
76
+ scoresheets. Proceed.
77
+ - **Critical** → do **not** auto-adopt. Escalate **HITL** (human-in-the-loop):
78
+ emit a human decision item containing the rubric, both scoresheets,
79
+ agreements, disagreements, and a single recommendation. Then **wait** for the
80
+ human's decision.
81
+
82
+ ### Critical = any of:
83
+
84
+ - a trigger in `.claude/rules/architectural-change-approval.md`
85
+ - production / deploy-facing change
86
+ - security / credentials
87
+ - destructive schema (DROP / RENAME / reshape)
88
+ - money, credits, valuations
89
+ - governance or source-of-truth definition
90
+ - **rubric tie**, or agents still diverge past a one-rank margin after scoring
91
+ - high irreversibility (hard or impossible to undo)
92
+
93
+ When in doubt, treat it as critical.
94
+
95
+ ---
96
+
97
+ ## 5. HITL sink — interim reality
98
+
99
+ The intended sink is the `human_items` **decision table** described in
100
+ `docs/systems/claude-workflow/HUMAN-INBOX.md`.
101
+
102
+ **As of 2026-06-07 that table is not built** (verified: no `human_items`
103
+ relation exists; only `codeflow_policy_decisions`). Until it ships:
104
+
105
+ - HITL = surface the rubric + both scoresheets + recommendation to Dave
106
+ in-session, and record it as a `work_item` note and/or CodeFlow memory.
107
+ - Migrate these records to `human_items` decision rows once that surface exists.
108
+
109
+ Do **not** treat the missing table as a reason to auto-adopt a critical
110
+ decision (bridge-mode: absence of an artifact is not licence for drift —
111
+ build/route around it, keep the human in the loop).
112
+
113
+ ---
114
+
115
+ ## Acceptance criteria
116
+
117
+ A session that uses this protocol must, in its report, show:
118
+
119
+ 1. Δ ratings per round from both agents (or a note that convergence was reached).
120
+ 2. If the trigger fired: the rubric — options, weighted criteria, both
121
+ scoresheets, combined result.
122
+ 3. The criticality classification and which trigger(s) matched.
123
+ 4. For critical decisions: the HITL record (human item / interim note) and the
124
+ human's decision, or `status: awaiting_human`.
125
+ 5. No critical decision auto-adopted without a human decision on record.