@dzhechkov/p-replicator 1.12.0 → 1.13.2

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 (122) hide show
  1. package/.dz-manifest.json +281 -65
  2. package/CHANGELOG.md +148 -1
  3. package/LICENSE +21 -0
  4. package/MULTIPLATFORM_ROADMAP.md +1 -1
  5. package/README/eng/01_quickstart.md +2 -2
  6. package/README/eng/02_user_guide.md +1 -1
  7. package/README/eng/03_admin_guide.md +2 -2
  8. package/README/eng/05_architecture.md +1 -1
  9. package/README/eng/README.md +2 -1
  10. package/README/ru/01_quickstart.md +2 -2
  11. package/README/ru/02_user_guide.md +1 -1
  12. package/README/ru/03_admin_guide.md +2 -2
  13. package/README/ru/05_architecture.md +1 -1
  14. package/README/ru/README.md +2 -1
  15. package/README/ru/html/index.html +8 -8
  16. package/README.md +150 -9
  17. package/bin/cli.js +0 -0
  18. package/package.json +10 -11
  19. package/sbom.json +604 -64
  20. package/scripts/check-pipeline-gaps.sh +510 -21
  21. package/src/commands/init.js +1 -1
  22. package/src/rule-components.json +5 -1
  23. package/src/utils.js +33 -3
  24. package/templates/.claude/agents/product-discoverer.md +38 -0
  25. package/templates/.claude/agents/replicate-coordinator.md +11 -1
  26. package/templates/.claude/commands/feature.md +72 -6
  27. package/templates/.claude/commands/go.md +6 -8
  28. package/templates/.claude/commands/harvest.md +5 -7
  29. package/templates/.claude/commands/replicate.md +169 -44
  30. package/templates/.claude/commands/start.md +28 -7
  31. package/templates/.claude/hooks/capture-source-path.cjs +795 -0
  32. package/templates/.claude/hooks/check-canon.cjs +493 -0
  33. package/templates/.claude/hooks/check-embed-contract.cjs +374 -0
  34. package/templates/.claude/hooks/check-external-deps.cjs +288 -0
  35. package/templates/.claude/hooks/check-file-ownership.cjs +424 -0
  36. package/templates/.claude/hooks/check-handoff-manifest.cjs +367 -0
  37. package/templates/.claude/hooks/check-job-contract.cjs +501 -0
  38. package/templates/.claude/hooks/check-look-origin.cjs +240 -0
  39. package/templates/.claude/hooks/check-look-trace.cjs +385 -0
  40. package/templates/.claude/hooks/check-metric-source.cjs +296 -0
  41. package/templates/.claude/hooks/check-model-cost.cjs +470 -0
  42. package/templates/.claude/hooks/check-ports.cjs +27 -6
  43. package/templates/.claude/hooks/check-review-contract.cjs +205 -0
  44. package/templates/.claude/hooks/check-source-version.cjs +312 -0
  45. package/templates/.claude/hooks/check-swarm-receipts.cjs +197 -0
  46. package/templates/.claude/hooks/check-webhook-contract.cjs +535 -0
  47. package/templates/.claude/hooks/statusline.cjs +2 -2
  48. package/templates/.claude/rules/embeddable-widget.md +73 -0
  49. package/templates/.claude/rules/feature-lifecycle.md +5 -6
  50. package/templates/.claude/rules/incoming-webhooks.md +99 -0
  51. package/templates/.claude/rules/long-running-job.md +73 -0
  52. package/templates/.claude/rules/model-call-cost.md +85 -0
  53. package/templates/.claude/rules/replicate-pipeline.md +122 -52
  54. package/templates/.claude/skills/brutal-honesty-review/SKILL.md +9 -0
  55. package/templates/.claude/skills/cc-toolkit-generator-enhanced/SKILL.md +4 -0
  56. package/templates/.claude/skills/cc-toolkit-generator-enhanced/modules/03-generate-p0.md +46 -1
  57. package/templates/.claude/skills/cc-toolkit-generator-enhanced/modules/04-generate-p1.md +7 -1
  58. package/templates/.claude/skills/cc-toolkit-generator-enhanced/modules/06-package-deliver.md +20 -2
  59. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/claude-md-strategy.md +7 -0
  60. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/automation-commands.md +17 -0
  61. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle-ent.md +43 -5
  62. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle.md +43 -7
  63. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/start-command.md +19 -1
  64. package/templates/.claude/skills/cc-toolkit-generator-enhanced/references/templates/swarm-file-evidence.md +151 -0
  65. package/templates/.claude/skills/goap-research-ed25519/SKILL.md +37 -22
  66. package/templates/.claude/skills/goap-research-ed25519/references/negative-results.md +94 -0
  67. package/templates/.claude/skills/goap-research-ed25519/scripts/check_report_evidence.py +368 -4
  68. package/templates/.claude/skills/goap-research-ed25519/scripts/ed25519_verifier.py +122 -5
  69. package/templates/.claude/skills/goap-research-ed25519/scripts/evidence_fetch.py +33 -16
  70. package/templates/.claude/skills/goap-research-ed25519/scripts/quote_provenance.py +342 -0
  71. package/templates/.claude/skills/goap-research-ed25519/scripts/test_ed25519_verifier.py +60 -0
  72. package/templates/.claude/skills/goap-research-ed25519/scripts/test_evidence_provenance.py +139 -6
  73. package/templates/.claude/skills/goap-research-ed25519/scripts/test_quote_provenance.py +274 -0
  74. package/templates/.claude/skills/goap-research-ed25519/scripts/test_suite_completeness.py +2 -1
  75. package/templates/.claude/skills/knowledge-extractor/SKILL.md +4 -0
  76. package/templates/.claude/skills/pipeline-forge/SKILL.md +18 -23
  77. package/templates/.claude/skills/pipeline-forge/examples/replicate-analysis.md +7 -2
  78. package/templates/.claude/skills/pipeline-forge/references/patterns-catalog.md +19 -1
  79. package/templates/.claude/skills/pipeline-forge/references/self-extracted-patterns.md +17 -6
  80. package/templates/.claude/skills/pipeline-forge/references/skill-anatomy.md +0 -1
  81. package/templates/.claude/skills/requirements-validator/SKILL.md +18 -5
  82. package/templates/.claude/skills/requirements-validator/references/feature-report-contracts.md +67 -0
  83. package/templates/.claude/skills/requirements-validator/references/scoring-system.md +15 -6
  84. package/templates/.claude/skills/reverse-engineering-unicorn/modules/025-cjm-prototype.md +21 -1
  85. package/templates/.claude/skills/sparc-prd-mini/SKILL.md +173 -725
  86. package/tests/e2e/feature-contour.test.js +176 -0
  87. package/tests/fixtures/feature-contour/docs/features/demo-gate/01_specification.md +15 -0
  88. package/tests/fixtures/feature-contour/docs/features/demo-gate/02_pseudocode.md +19 -0
  89. package/tests/fixtures/feature-contour/docs/features/demo-gate/03_architecture.md +3 -0
  90. package/tests/fixtures/feature-contour/docs/features/demo-gate/04_refinement.md +3 -0
  91. package/tests/fixtures/feature-contour/docs/features/demo-gate/05_completion.md +7 -0
  92. package/tests/fixtures/feature-contour/docs/features/demo-gate/review-report.md +11 -0
  93. package/tests/fixtures/feature-contour/docs/features/demo-gate/validation-report.md +10 -0
  94. package/tests/fixtures/feature-contour/tests/demo.test.js +16 -0
  95. package/tests/snapshot/baseline.json +64 -40
  96. package/tests/unit/capture-source-path.test.js +492 -0
  97. package/tests/unit/check-canon.test.js +403 -0
  98. package/tests/unit/check-embed-contract.test.js +422 -0
  99. package/tests/unit/check-external-deps.test.js +363 -0
  100. package/tests/unit/check-file-ownership.test.js +388 -0
  101. package/tests/unit/check-handoff-manifest.test.js +410 -0
  102. package/tests/unit/check-job-contract.test.js +514 -0
  103. package/tests/unit/check-look-origin.test.js +180 -0
  104. package/tests/unit/check-look-trace.test.js +420 -0
  105. package/tests/unit/check-metric-source.test.js +325 -0
  106. package/tests/unit/check-model-cost.test.js +425 -0
  107. package/tests/unit/check-ports.test.js +46 -2
  108. package/tests/unit/check-review-contract.test.js +181 -0
  109. package/tests/unit/check-source-version.test.js +344 -0
  110. package/tests/unit/check-swarm-receipts.test.js +231 -0
  111. package/tests/unit/check-webhook-contract.test.js +536 -0
  112. package/tests/unit/db-port-rule.test.js +8 -2
  113. package/tests/unit/detection-ladder-registry.test.js +2 -2
  114. package/tests/unit/generator-swarm-contract.test.js +287 -0
  115. package/tests/unit/guard-honest-input-meta.test.js +64 -0
  116. package/tests/unit/honest-failure-rules.test.js +106 -9
  117. package/tests/unit/look-phase-contract.test.js +231 -0
  118. package/tests/unit/negative-conclusion-gate.test.js +300 -0
  119. package/tests/unit/quote-provenance.test.js +122 -0
  120. package/tests/unit/sync-templates-guard.test.js +46 -3
  121. package/tests/unit/traceability-completion-gate.test.js +267 -0
  122. package/tests/unit/utils.test.js +40 -3
@@ -0,0 +1,176 @@
1
+ 'use strict';
2
+
3
+ // Assert lifecycle contract content, not a template hash: a sha256 pin detects any change but
4
+ // cannot distinguish a defect from an intentional edit that preserves every required gate.
5
+
6
+ const { describe, test } = require('node:test');
7
+ const assert = require('node:assert/strict');
8
+ const crypto = require('node:crypto');
9
+ const fs = require('node:fs');
10
+ const os = require('node:os');
11
+ const path = require('node:path');
12
+ const { spawnSync } = require('node:child_process');
13
+
14
+ const PACKAGE_ROOT = path.resolve(__dirname, '..', '..');
15
+ const FIXTURE = path.join(PACKAGE_ROOT, 'tests', 'fixtures', 'feature-contour');
16
+ const CHECKER = path.join(PACKAGE_ROOT, 'scripts', 'check-pipeline-gaps.sh');
17
+ const REVIEW_HOOK = path.join(
18
+ PACKAGE_ROOT, 'templates', '.claude', 'hooks', 'check-review-contract.cjs',
19
+ );
20
+ const FEATURE_TEMPLATE = path.join(
21
+ PACKAGE_ROOT, 'templates', '.claude', 'commands', 'feature.md',
22
+ );
23
+
24
+ // The fixture ships only the consumer's OWN files (docs/, tests/). The two shipped templates the
25
+ // checker reads for its role maps are materialised from templates/ at run time, byte-identical:
26
+ // a stub copy inside the fixture would be a third copy of a canonical skill and trip no-skill-drift.
27
+ const TEMPLATE_FILES = [
28
+ ['commands', 'feature.md'],
29
+ ['skills', 'sparc-prd-mini', 'SKILL.md'],
30
+ ];
31
+
32
+ function project(t) {
33
+ const root = fs.mkdtempSync(path.join(os.tmpdir(), 'feature-contour-e2e-'));
34
+ fs.cpSync(FIXTURE, root, { recursive: true });
35
+ for (const parts of TEMPLATE_FILES) {
36
+ const target = path.join(root, '.claude', ...parts);
37
+ fs.mkdirSync(path.dirname(target), { recursive: true });
38
+ fs.copyFileSync(path.join(PACKAGE_ROOT, 'templates', '.claude', ...parts), target);
39
+ }
40
+ t.after(() => fs.rmSync(root, { recursive: true, force: true }));
41
+ return root;
42
+ }
43
+
44
+ function execute(command, args, cwd) {
45
+ const result = spawnSync(command, args, { cwd, encoding: 'utf8', timeout: 10000 });
46
+ return {
47
+ status: result.status,
48
+ signal: result.signal,
49
+ output: `${result.stdout || ''}${result.stderr || ''}`,
50
+ };
51
+ }
52
+
53
+ function checker(root, flags = [
54
+ '--traceability', '--completion', '--report-revision', '--criterion-scenarios',
55
+ ]) {
56
+ return execute('bash', [CHECKER, root, ...flags], root);
57
+ }
58
+
59
+ function hook(root) {
60
+ return execute(process.execPath, [REVIEW_HOOK, root, 'demo-gate'], root);
61
+ }
62
+
63
+ function replace(root, relative, transform) {
64
+ const target = path.join(root, relative);
65
+ fs.writeFileSync(target, transform(fs.readFileSync(target, 'utf8')));
66
+ }
67
+
68
+ function phase(text, number, nextNumber) {
69
+ const start = text.indexOf(`### Phase ${number}:`);
70
+ assert.notEqual(start, -1, `Phase ${number} heading missing`);
71
+ const end = nextNumber === undefined ? text.length : text.indexOf(`### Phase ${nextNumber}:`, start);
72
+ assert.notEqual(end, -1, `Phase ${nextNumber} heading missing`);
73
+ return text.slice(start, end);
74
+ }
75
+
76
+ describe('feature contour consumer contract', () => {
77
+ test('green fixture binds specification, validation, completion, review, and executable evidence', (t) => {
78
+ const root = project(t);
79
+ const specification = fs.readFileSync(path.join(
80
+ root, 'docs', 'features', 'demo-gate', '01_specification.md',
81
+ ));
82
+ const validation = fs.readFileSync(path.join(
83
+ root, 'docs', 'features', 'demo-gate', 'validation-report.md',
84
+ ), 'utf8');
85
+ const expectedDigest = crypto.createHash('sha256').update(specification).digest('hex');
86
+ assert.match(validation, new RegExp(`^Spec revision: sha256:${expectedDigest}$`, 'm'),
87
+ 'the checked-in fixture revision must match the specification bytes');
88
+
89
+ const gate = checker(root);
90
+ assert.equal(gate.status, 0, gate.output);
91
+ assert.match(gate.output, /VERDICT traceability=PASS/);
92
+ assert.match(gate.output, /VERDICT completion=PASS/);
93
+ assert.match(gate.output, /VERDICT report-revision=PASS/);
94
+ assert.match(gate.output, /VERDICT criterion-scenarios=PASS/);
95
+
96
+ const review = hook(root);
97
+ assert.equal(review.status, 0, review.output);
98
+ const fixtureTests = execute(process.execPath, ['--test', 'tests/demo.test.js'], root);
99
+ assert.equal(fixtureTests.status, 0, fixtureTests.output);
100
+ });
101
+
102
+ test('deleting AC-demo-gate-2 coverage is a named completion gap', (t) => {
103
+ const root = project(t);
104
+ replace(root, 'docs/features/demo-gate/05_completion.md', (body) =>
105
+ body.replace(/^\| AC-demo-gate-2 .*\n/m, ''));
106
+ const result = checker(root, ['--completion']);
107
+ assert.equal(result.status, 1, result.output);
108
+ assert.match(result.output,
109
+ /GAP contour=demo-gate completion AC-demo-gate-2 has no row in Criterion coverage/);
110
+ });
111
+
112
+ test('changing specification bytes invalidates both report revision contracts', (t) => {
113
+ const root = project(t);
114
+ fs.appendFileSync(path.join(
115
+ root, 'docs', 'features', 'demo-gate', '01_specification.md',
116
+ ), '\n');
117
+ const revision = checker(root, ['--report-revision']);
118
+ assert.equal(revision.status, 1, revision.output);
119
+ assert.match(revision.output,
120
+ /GAP contour=demo-gate report-revision validation-report\.md sha256:.* != specification sha256:/);
121
+
122
+ const review = hook(root);
123
+ assert.equal(review.status, 1, review.output);
124
+ assert.match(review.output, /GAP Spec revision mismatch report=.* specification=/);
125
+ });
126
+
127
+ test('removing Reviewer family is a named review-contract gap', (t) => {
128
+ const root = project(t);
129
+ replace(root, 'docs/features/demo-gate/review-report.md', (body) =>
130
+ body.replace(/^Reviewer family:.*\n/m, ''));
131
+ const review = hook(root);
132
+ assert.equal(review.status, 1, review.output);
133
+ assert.match(review.output, /GAP Reviewer family line missing/);
134
+ });
135
+
136
+ test('changing a test title breaks completion evidence by name', (t) => {
137
+ const root = project(t);
138
+ replace(root, 'tests/demo.test.js', (body) =>
139
+ body.replace('rejects an invalid value', 'declines an invalid value'));
140
+ const result = checker(root, ['--completion']);
141
+ assert.equal(result.status, 1, result.output);
142
+ assert.match(result.output,
143
+ /AC-demo-gate-2 test file tests\/demo\.test\.js does not contain title "rejects an invalid value"/);
144
+ });
145
+
146
+ test('deleting AC-demo-gate-1 scenario is a named traceability-floor gap', (t) => {
147
+ const root = project(t);
148
+ replace(root, 'docs/features/demo-gate/validation-report.md', (body) =>
149
+ body.replace(/^\| AC-demo-gate-1 .*\n/m, ''));
150
+ const result = checker(root, ['--criterion-scenarios']);
151
+ assert.equal(result.status, 1, result.output);
152
+ assert.match(result.output,
153
+ /GAP contour=demo-gate criterion-scenarios AC-demo-gate-1 has no scenario row/);
154
+ });
155
+
156
+ test('feature template carries each blocking gate in its owning phase and AUTO mode', () => {
157
+ const template = fs.readFileSync(FEATURE_TEMPLATE, 'utf8');
158
+ const phase2 = phase(template, 2, 3);
159
+ const phase3 = phase(template, 3, 4);
160
+ const phase4 = phase(template, 4);
161
+ assert.match(phase2, /--report-revision/);
162
+ assert.match(phase2, /--criterion-scenarios/);
163
+ assert.match(phase3, /--completion/);
164
+ assert.match(phase3, /## Criterion coverage/);
165
+ assert.match(phase4, /check-review-contract\.cjs/);
166
+
167
+ const autoStart = template.indexOf('## AUTO mode');
168
+ const autoEnd = template.indexOf('\n## Related', autoStart);
169
+ assert.notEqual(autoStart, -1, 'AUTO mode heading missing');
170
+ assert.notEqual(autoEnd, -1, 'AUTO mode boundary missing');
171
+ const auto = template.slice(autoStart, autoEnd);
172
+ assert.match(auto, /--report-revision/);
173
+ assert.match(auto, /--criterion-scenarios/);
174
+ assert.match(auto, /--completion/);
175
+ });
176
+ });
@@ -0,0 +1,15 @@
1
+ # Specification — Demo gate
2
+
3
+ ## Requirements
4
+
5
+ ### FR-demo-gate-1 — Validate a submitted value
6
+
7
+ The demo validator must distinguish accepted values from rejected values.
8
+
9
+ ### AC-demo-gate-1 — Accept a valid value
10
+
11
+ Given a valid value, when the validator runs, then it reports acceptance.
12
+
13
+ ### AC-demo-gate-2 — Reject an invalid value
14
+
15
+ Given an invalid value, when the validator runs, then it reports rejection.
@@ -0,0 +1,19 @@
1
+ # Pseudocode — Demo gate
2
+
3
+ ## Validation algorithm
4
+
5
+ ### Algorithm: Validate submitted value
6
+
7
+ REQUIREMENT: `FR-demo-gate-1`
8
+ REQUIREMENT: `AC-demo-gate-1`
9
+ REQUIREMENT: `AC-demo-gate-2`
10
+
11
+ INPUT: submitted value
12
+
13
+ OUTPUT: acceptance decision
14
+
15
+ STEPS:
16
+
17
+ 1. Compare the submitted value with the accepted fixture value.
18
+ 2. Return acceptance for a match.
19
+ 3. Return rejection otherwise.
@@ -0,0 +1,3 @@
1
+ # Architecture — Demo gate
2
+
3
+ The fixture keeps its executable evidence in `tests/demo.test.js`; the completion artifact binds each acceptance criterion to one named test in that file.
@@ -0,0 +1,3 @@
1
+ # Refinement — Demo gate
2
+
3
+ The negative path uses a deliberately invalid value so the rejection criterion is independently observable.
@@ -0,0 +1,7 @@
1
+ # Completion — Demo gate
2
+
3
+ ## Criterion coverage
4
+ | Criterion | Test file | Test title |
5
+ |-----------|-----------|------------|
6
+ | AC-demo-gate-1 | tests/demo.test.js | accepts a valid value |
7
+ | AC-demo-gate-2 | tests/demo.test.js | rejects an invalid value |
@@ -0,0 +1,11 @@
1
+ # Review report — Demo gate
2
+ Reviewer family: claude
3
+ Spec revision: sha256:264708a769ad0d07d715420d82278461c5f1b831dd365eaaf6be051db18d47e8
4
+
5
+ The fixture implementation and its executable tests conform to both declared criteria.
6
+
7
+ ## Spec conformance
8
+ | Criterion | Verdict | Evidence |
9
+ |-----------|---------|----------|
10
+ | AC-demo-gate-1 | met | tests/demo.test.js — accepts a valid value |
11
+ | AC-demo-gate-2 | met | tests/demo.test.js — rejects an invalid value |
@@ -0,0 +1,10 @@
1
+ # Validation report — Demo gate
2
+ Spec revision: sha256:264708a769ad0d07d715420d82278461c5f1b831dd365eaaf6be051db18d47e8
3
+
4
+ The specification is ready for implementation: both acceptance criteria have concrete scenarios.
5
+
6
+ ## Criterion scenarios
7
+ | Criterion | Scenario |
8
+ |-----------|----------|
9
+ | AC-demo-gate-1 | Valid input is accepted |
10
+ | AC-demo-gate-2 | Invalid input is rejected |
@@ -0,0 +1,16 @@
1
+ 'use strict';
2
+
3
+ const { test } = require('node:test');
4
+ const assert = require('node:assert/strict');
5
+
6
+ function accepts(value) {
7
+ return value === 'valid';
8
+ }
9
+
10
+ test('accepts a valid value', () => {
11
+ assert.equal(accepts('valid'), true);
12
+ });
13
+
14
+ test('rejects an invalid value', () => {
15
+ assert.equal(accepts('invalid'), false);
16
+ });
@@ -1,39 +1,58 @@
1
1
  {
2
- "generatedAt": "2026-08-31T05:41:46.211Z",
3
- "totalFiles": 142,
2
+ "generatedAt": "2026-09-02T07:49:08.074Z",
3
+ "totalFiles": 166,
4
4
  "files": {
5
5
  ".claude/agents/doc-validator.md": "e57950758cd4764b2cb54b3f1905567e9dbc1ed20ac6ecd30998614894689f4f",
6
6
  ".claude/agents/harvest-coordinator.md": "71e524e8379df46bbf457dbc1d4480634e05c99b7d3a4f59a356b8d71a0a4166",
7
- ".claude/agents/product-discoverer.md": "f74683fe91b4357d6fb4024ed47b4d5a129ea6375ca6b223dee97176d74acf1c",
8
- ".claude/agents/replicate-coordinator.md": "e86060110ab188109cf908878206543f414993e14dad01f8dc19f041ee6497a7",
7
+ ".claude/agents/product-discoverer.md": "be7d707a5fc1ee2eb18dda9e904ffbdc0be21c874b3a721349fd9e840bf77bc8",
8
+ ".claude/agents/replicate-coordinator.md": "bbfe18a7642954f357db08e849349fee02681e2f0ffa036539c45d98dbaba960",
9
9
  ".claude/commands/deploy.md": "27f5424ee217163c55e5e6b9322a1f0858159407bd24ebd6d6588d6c22a5f890",
10
10
  ".claude/commands/docs.md": "be03592cb3f1d61b60dc96d3e26d71281ad4eb2d4626012c080ce609a32c96e4",
11
- ".claude/commands/feature.md": "2df6ab3e6c015dc294955234192843c24a00e07784ac30994c7fe7572f8de775",
12
- ".claude/commands/go.md": "df92c2ec060707638cc7d26d9c9e6a5fecc381e89915bdb0671c5489fb530574",
13
- ".claude/commands/harvest.md": "5d78e189947b8c91602de89742099f25df4c85f5625299bd77bc073af667e155",
11
+ ".claude/commands/feature.md": "6908fa6c8ba770f829378a021d5f7e9a9bc79a15bdd67b278d8c6a765968b291",
12
+ ".claude/commands/go.md": "e7337012dccaab09e0cf27a696ebff14bea4626fb5167538af7da2f5cc7b597a",
13
+ ".claude/commands/harvest.md": "ed6355c102af0f2c62bf6714fce63157e0cb1c1ee85bc32c96f137b8b0c0e1ba",
14
14
  ".claude/commands/myinsights.md": "f31c5e133b5027197359e4179cbba1ab535f990634a69ea7c5c73bd2bc329d68",
15
15
  ".claude/commands/next.md": "1e4984306c3aa80dfc8734dc1c975dfe5fdf2cf6396ddd759e4c7635646107b8",
16
16
  ".claude/commands/plan.md": "6fef889f51168981bf4a98b8392a0d595e3d199e1cfaa8e08c0a181ec6c440e4",
17
- ".claude/commands/replicate.md": "7dbf352a122f415bb987d3c968b905d5a9bda932e619382ce24f9ef2c099723a",
17
+ ".claude/commands/replicate.md": "165d7b3c0606be6817893b53cbfc5ca55c7b81cbe35cbdd0dccf8679d702e81a",
18
18
  ".claude/commands/run.md": "87144dfe8c56c15ba7c117daa544d8a08b84d7205f21dafcc48d27c6c3995059",
19
- ".claude/commands/start.md": "2c9d2bd450d6a8cd6f8f0e958b77ae4430efc745645a11300cf29e85dcb468a6",
19
+ ".claude/commands/start.md": "fb8a7762f4073b9e8689dec3830680907efb9ec68bb2faa39b8a547793d9a078",
20
20
  ".claude/hooks/autocommit-insights.cjs": "5e7cef87b24d457f25315d79fe15f0dfaf94d9269495d638817f0faee2593c6f",
21
21
  ".claude/hooks/autocommit-plans.cjs": "9bb404b7f4fda5de03e6c2f16bf8939a79ec1944538767b04bcccc6cf50cc03d",
22
22
  ".claude/hooks/autocommit-roadmap.cjs": "f4dcc9ffd9a3aed91dd56e011e699fcf8af903cc81594e4ab1ef61e5432a36ad",
23
+ ".claude/hooks/capture-source-path.cjs": "bed92548c3313d69110b6cc06e6b2b858d9d548b8c18c82750ae90d514212bf2",
24
+ ".claude/hooks/check-canon.cjs": "99e6bff9b0078eb2ec23f7df98b7ac06c894f9018eba4a8c358e8f92e5ec7b06",
23
25
  ".claude/hooks/check-docs-complete.cjs": "27c05c2adcedc806e395b30b455243193a4fbd0968ce96e415679e1f78db951a",
26
+ ".claude/hooks/check-embed-contract.cjs": "9e963a07c12350b760264133021e75fb699439b1f060332e1ccdd962b645b4a0",
27
+ ".claude/hooks/check-external-deps.cjs": "7bce49a744170a3193edf4b2238bcc5a6f1b0efa29333760a52e4fd145739d18",
28
+ ".claude/hooks/check-file-ownership.cjs": "c6273e7b0817d15e375586131924a08095722aff7d0e6a6a04c857a480788e1f",
24
29
  ".claude/hooks/check-growth-trace.cjs": "91994fc109c8440306c9dd3d5eea176c533eb0818fcdb09bac2b309397d9908a",
25
- ".claude/hooks/check-ports.cjs": "2385687994c882ebb430cdf8ae2bef9309fe5ba284354671413dc134f8e17694",
30
+ ".claude/hooks/check-handoff-manifest.cjs": "768cd0befc0da3adcddcded86ed6d1bd1ac4f25afb563ae578002060a54968cf",
31
+ ".claude/hooks/check-job-contract.cjs": "48676c52eba3d0dd01e8c9764a2becfdcc8112423dc9711db7c18a8c2a5870a7",
32
+ ".claude/hooks/check-look-origin.cjs": "ebde0d8287601aecd8024edb0647f20eeaf8130f3ef920bb6a47b15aef297213",
33
+ ".claude/hooks/check-look-trace.cjs": "2952d8547feff344ec18289e1eaf5d067ada2af6e13541e25e73a8dfd7caf2bc",
34
+ ".claude/hooks/check-metric-source.cjs": "315deda6354f91737165786bdb22b799517bd80530e5b4584593c4f4df84c56e",
35
+ ".claude/hooks/check-model-cost.cjs": "425bda547661e0b31f313d6bb371db4d303cc83a43189fb4dc981e1fb43fac06",
36
+ ".claude/hooks/check-ports.cjs": "2b458cf78367ec7752174f08aa40109b3b6217e405f99a46e18e75e4b69bc87e",
37
+ ".claude/hooks/check-review-contract.cjs": "44e32ea31a4a71ceb6eccb0956006519de270eab787a79ab4884978bc04385ab",
38
+ ".claude/hooks/check-source-version.cjs": "b9dc2eee7403119481ea2c49a94581613f2c134685448736c2734948a638a010",
39
+ ".claude/hooks/check-swarm-receipts.cjs": "9fa83d78b085d8eea28958b4722999ba44a7bd47c98fe5a96127fc5b5230b40c",
40
+ ".claude/hooks/check-webhook-contract.cjs": "dfa27bd24cee8868fd60be5d24749c206f303fe4afcc1e72024d526324562a39",
26
41
  ".claude/hooks/session-insights.cjs": "31fbe90d81b01dfb56557ed5d68dbde2211a14d5469c5d3761f45fb63c07c3a7",
27
42
  ".claude/hooks/state-update.cjs": "47146a76b768ac2273abe8f2f017856a0e28b45afaf90048148da417dd19604e",
28
- ".claude/hooks/statusline.cjs": "5a842162e710b6cb07f59ee0711f2b190d5e505e4546ea01931ba4ba25be8228",
43
+ ".claude/hooks/statusline.cjs": "50c08decec3e80ed325f50d7b062fbe0add47e8594002fcc165248492242ab56",
29
44
  ".claude/hooks/write-insight.cjs": "743f2d85b037cf522dfaf4775947b0cd331e52f2f304e88360c160e0e8e9a589",
30
45
  ".claude/rules/cost-of-detection-ladder.md": "f15309ee8f1494478ff7678380dbe8fc8eecd154be36d57c9090cd17126a07da",
31
46
  ".claude/rules/docker-ports.md": "59eb430f29dd762e8b76ad6d1177fe8b5b250de007856c743387cb88ee157942",
32
- ".claude/rules/feature-lifecycle.md": "4a7bb631bc3600c8aeb5a5a484258298688d87604ac5d2d3cacdff9139d05edc",
47
+ ".claude/rules/embeddable-widget.md": "0159224f8e9599b67a860738bb42e3e40adf598176c48ea6c86a01c891f0f18c",
48
+ ".claude/rules/feature-lifecycle.md": "4e926f84f244feb6824114a0624733738669c93e0508693fa2afa4e9a35c2aa3",
33
49
  ".claude/rules/git-workflow.md": "7d8d2ded47fcc0fb95da3dc226efa6cb3c80d6adf7296977588c181dfce20192",
34
50
  ".claude/rules/honest-configuration.md": "851bc28e9e2baf1043bc09b982f3df3431bc7af1e076f8ff9df3d6729835bad5",
51
+ ".claude/rules/incoming-webhooks.md": "92f3de02814ed0610df644acf554f4b41b2bae2f9d281695e2e217a1d6558e84",
35
52
  ".claude/rules/insights-capture.md": "d529e6be79178636ca362d83366b1dd7a843371e8ba4f2b09d65c009fab52dc4",
36
- ".claude/rules/replicate-pipeline.md": "fce6480a56bd4ab2d6908faac5985d7557527b1ca36ad597bb00feabca3688bd",
53
+ ".claude/rules/long-running-job.md": "e6bd0efff89338998d34440a94dc9288cf7bcf790b27bcaa51b83d43f57942ed",
54
+ ".claude/rules/model-call-cost.md": "26c3b20ac3ed7f9cf6deb5e94302ade87f9e3e51fffca7ac2377ff31bc144f34",
55
+ ".claude/rules/replicate-pipeline.md": "13bf073273820addeb87167402495b2f683cefac70a9f6cb07b6e054b1851e0f",
37
56
  ".claude/rules/skill-interface-protocol.md": "c3f624d0a8a4c7e0f5744e529eb4486cc0589fdb732b9799bccc75091a6d63ca",
38
57
  ".claude/rules/swarm-file-evidence.md": "c71a216dbc3fd633c30949823ceac354f8439b96279a1a8dd606afb1b3ef5c45",
39
58
  ".claude/settings.json": "18db09827dce410667b93e2b1a41ef8e46d4431114733e4304a5fc2192b2fc66",
@@ -45,59 +64,63 @@
45
64
  ".claude/skills/brutal-honesty-review/scripts/assess-code.sh": "2b10d2972b1379adde9a68ddf8bcdb399b7d65075e458a54523ffd8d99ddc746",
46
65
  ".claude/skills/brutal-honesty-review/scripts/assess-tests.sh": "d33e760a0739e9291f6087adf189f01eb7c4a1136d9128390dd6e3ad8eadda6f",
47
66
  ".claude/skills/brutal-honesty-review/scripts/validate-config.json": "7418284839f89735d01f50eefdb488b013e0076f6003a67683062429c14984c6",
48
- ".claude/skills/brutal-honesty-review/SKILL.md": "21e41129dac8e99485b501dcb3767d5f4461ce527782fa7bc71f89dabe5bd2bd",
67
+ ".claude/skills/brutal-honesty-review/SKILL.md": "f49957f8bac6b55ab49bb953867b1aa3d6d658f4a1d24eddec5b05a71a07da54",
49
68
  ".claude/skills/cc-toolkit-generator-enhanced/modules/01-detect-parse.md": "85c72f6daa5af88b4a7ff520a387f47a7c92b81cb1f0757550c8b58100a97be6",
50
69
  ".claude/skills/cc-toolkit-generator-enhanced/modules/02-analyze-map.md": "5939f3fe6ae542fabb8e665dc373a20410d8de917362fcb3ecac504286f41836",
51
- ".claude/skills/cc-toolkit-generator-enhanced/modules/03-generate-p0.md": "e1ae2dd69db0d68fe276c1d0e57bd19921bf98fe91fe054716add76338442891",
52
- ".claude/skills/cc-toolkit-generator-enhanced/modules/04-generate-p1.md": "081284d3858c5dd89b45fc8a2b83bbc0477843f864cbceb6d9f8c3629b198a0a",
70
+ ".claude/skills/cc-toolkit-generator-enhanced/modules/03-generate-p0.md": "db63c7c7e1277c0b0c51a1f18986abe0257d079c20938416b673effee5edecaf",
71
+ ".claude/skills/cc-toolkit-generator-enhanced/modules/04-generate-p1.md": "d40062dffa70aede07dd1411a1f7cff83bb33aa45746d6e65eac8a7016ce3a33",
53
72
  ".claude/skills/cc-toolkit-generator-enhanced/modules/05-generate-p2p3.md": "9535eaa5fa1be0804369aa4e8ee6f6f580839ea2c3c7b7aa51584e298a928093",
54
- ".claude/skills/cc-toolkit-generator-enhanced/modules/06-package-deliver.md": "d7d7effe411b6dc885f2cff04ccc931bed06c9245ebde34c5842d130b0f1e89d",
73
+ ".claude/skills/cc-toolkit-generator-enhanced/modules/06-package-deliver.md": "b1dbb09e6bf5bef980517def86032288c53a87a367c7d7d554fa2591a585b2b8",
55
74
  ".claude/skills/cc-toolkit-generator-enhanced/modules/07-harvest-feedback.md": "2121fa2e93b0d0e01418d92ca12c2dd2831596ff11a1ec44b436b530198fca91",
56
75
  ".claude/skills/cc-toolkit-generator-enhanced/modules/08-skill-composition.md": "683b254e400414b432827bedf4153a122322125eff053da4ccfeb3a62bab2a77",
57
76
  ".claude/skills/cc-toolkit-generator-enhanced/modules/09-cross-project-learning.md": "c395bc42a40ed14c0b8fe274df516082db0490228c82aba6a56f23b8f41d3d43",
58
77
  ".claude/skills/cc-toolkit-generator-enhanced/modules/README.md": "9dbcc9c0978d06cbe31caffa909741fdb3a38d3cd1e6e98addf95628ec8394a0",
59
- ".claude/skills/cc-toolkit-generator-enhanced/references/claude-md-strategy.md": "88cdab1687096d58dc4450cdf81d24d00fdb493b2cc4960030b30fd57d1ca2da",
78
+ ".claude/skills/cc-toolkit-generator-enhanced/references/claude-md-strategy.md": "14366a8e645efdea181ccefb20ebb3f157ef9b723fa56f359cdcc983624b5131",
60
79
  ".claude/skills/cc-toolkit-generator-enhanced/references/enhanced-recommendations.md": "657e35db0cb77d3a9d1a4d01215a9b8d50441dd863593bee3a84f62aad8b00bc",
61
80
  ".claude/skills/cc-toolkit-generator-enhanced/references/extended-mapping.md": "5e87c91956eabc70b4a1084b47b2c9a20ede18bb245735812ead956eafabf3af",
62
81
  ".claude/skills/cc-toolkit-generator-enhanced/references/maturity-integration.md": "aa4e743bcd0281525336a298d0489c31481f69ff1a534e1ed1d262d888937deb",
63
82
  ".claude/skills/cc-toolkit-generator-enhanced/references/security-patterns-library.md": "5f1d650c426cbd2c9536b385306605ea62a5a520ee4566d23ca7254409c672a5",
64
- ".claude/skills/cc-toolkit-generator-enhanced/references/templates/automation-commands.md": "23b8204fdc70b5afc5430cbe503af709a04b26716d2d2e07889283a755858fee",
83
+ ".claude/skills/cc-toolkit-generator-enhanced/references/templates/automation-commands.md": "9ce3db4c3c5b9696a312152067c1869b1f421ce77fbcfdca83edaa797c5caf3f",
65
84
  ".claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-agents.md": "c91f81da197a072b57378fd0018eea26c35d909a558bdca6f070eb60153c97b3",
66
85
  ".claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-hooks-commands.md": "8398f2493434db101476300e514a34bf8124a51eb732cf81923f9a5b5a3d5db4",
67
86
  ".claude/skills/cc-toolkit-generator-enhanced/references/templates/ddd-skills.md": "2f1019d5da7d695983aee79186a47fcefccbfa24db48219c04f9bb9feb757d3a",
68
87
  ".claude/skills/cc-toolkit-generator-enhanced/references/templates/enhanced-claude-md.md": "db6898b7202b84965cbff9195a6ce780cadd6aeb64adae3fbfd951443a6bc43d",
69
- ".claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle-ent.md": "eb9025b687f0408b33280bf5fcc6c8be9b1670a544dd90b510557b89ae6cc123",
70
- ".claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle.md": "7b01140a304c060fb085ded8711189ac3f259f999df1cb42380d0274191f1b25",
88
+ ".claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle-ent.md": "7a4be2ea28b973470d3c71fb083db7042ee6a2ee0f3564c7caa7ecb425e0ae09",
89
+ ".claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-lifecycle.md": "e734df95afd0f10aa9abc4e696b93d1701d393664a44411c4c78a11dab5c14cf",
71
90
  ".claude/skills/cc-toolkit-generator-enhanced/references/templates/feature-suggestions.md": "3b1c20d2394e180720447416767fbfae99168cf9ca846bf64907f6fe5cd906da",
72
91
  ".claude/skills/cc-toolkit-generator-enhanced/references/templates/insights-system.md": "244c2ef5f417c5d0097accf5ccfffd9de93d167efbfc6818cb9a8196139e096e",
73
92
  ".claude/skills/cc-toolkit-generator-enhanced/references/templates/mcp.md": "63d1e6dabf5bb29534e6fa11d9dd531ec55a48cda661f0faf7a29dad6f49296f",
74
- ".claude/skills/cc-toolkit-generator-enhanced/references/templates/start-command.md": "e037a7e73e65e5216f95f27a255009c4c2b95f0f2d6b7c575d70813efac34438",
75
- ".claude/skills/cc-toolkit-generator-enhanced/SKILL.md": "26fb1a3c0961fbb1f5f7e81ec5134bbe49ba0f99175c394cdf0c6b8a35568be2",
93
+ ".claude/skills/cc-toolkit-generator-enhanced/references/templates/start-command.md": "68b5f933f9d720de3bf2054154bb4316ba4d6dd02b31dc866d73fdf90927b46a",
94
+ ".claude/skills/cc-toolkit-generator-enhanced/references/templates/swarm-file-evidence.md": "661f24e764d6eababcf65d7bfb4c66cca90541c821ade4986ade46423d69ece6",
95
+ ".claude/skills/cc-toolkit-generator-enhanced/SKILL.md": "ef4f8901f49f7fbb7db0c2994973c42840e3e909f1585c70a4f7442752b41265",
76
96
  ".claude/skills/explore/references/questioning-techniques.md": "ec0dd00871d3abe950f9cf375216a43043827897166c4165c3fa581839851195",
77
97
  ".claude/skills/explore/references/task-brief-templates.md": "4e9292479e120afce944b747bb7b4a7226c41e9880708d620de3ea4fa4ef0249",
78
98
  ".claude/skills/explore/SKILL.md": "2473e7961845db0d64566cd42627b374d1830664b9e302058a1b1aa466bc7361",
79
99
  ".claude/skills/goap-research-ed25519/references/ed25519-verification.md": "2742f14b472bff69c83f24d9bac5bf023bd7f9ecc3e659742ac3152a239dd68f",
100
+ ".claude/skills/goap-research-ed25519/references/negative-results.md": "64bf39ca20d7d11c02c981b97f72a258a2874eafdc0a6a2935e54278c529ee5b",
80
101
  ".claude/skills/goap-research-ed25519/references/research-actions.md": "156d2f8ce342f7013bc758fe7c0d3ad3041b4f67f30dbcf8d59e091cb70d9a9c",
81
102
  ".claude/skills/goap-research-ed25519/references/source-evaluation.md": "d6a19abb6be64dc9e1f539903080029125d2d899da4de3063e75e1afb7e4906f",
82
- ".claude/skills/goap-research-ed25519/scripts/check_report_evidence.py": "5053e677f11d00b4dd8365a81eafa1d2c961eebd25c33f72b02455573a934a32",
83
- ".claude/skills/goap-research-ed25519/scripts/ed25519_verifier.py": "f4a2ac9e6473201583643fe8abf47560863cec600344dad5c9df06091b4298f5",
84
- ".claude/skills/goap-research-ed25519/scripts/evidence_fetch.py": "5f4d7cb5d6fb3106d64130b6606582eb55a4f633ef969cf7890b1de1c179345b",
103
+ ".claude/skills/goap-research-ed25519/scripts/check_report_evidence.py": "ca663eab0fe31eeeacfbc71b4f436f516bdf118da7f1fd28fe3956b5069f27c1",
104
+ ".claude/skills/goap-research-ed25519/scripts/ed25519_verifier.py": "76ac4a9d5374002a98880e5328d84c50e85d7da06a1fb04e476805b6d9a147e4",
105
+ ".claude/skills/goap-research-ed25519/scripts/evidence_fetch.py": "5bdc8e97e6bff7c449dca1f5643d6bb2fca1aee28a91001407dfc28cfa8a233f",
85
106
  ".claude/skills/goap-research-ed25519/scripts/fixture_legacy_v1_fact.json": "e613de4737145cbfb5f349fbf9f1122801ce3508b62c3a18e2e0cba26b9da5b0",
86
107
  ".claude/skills/goap-research-ed25519/scripts/fixture_legacy_v2_fact.json": "3f552b47c3864e4ff7ae8c72516e98c188592c7f4f7703d09ce88b39f586ad9d",
87
108
  ".claude/skills/goap-research-ed25519/scripts/fixtures_field_cases.json": "e2ee619732ab4a1b57285e57b4349f96b4158b231a5624e5264fadf69edb8983",
88
109
  ".claude/skills/goap-research-ed25519/scripts/goap_planner.py": "f5cbf4784106710b363e7f29bfa538b75f488cb25e1c273ae40de9f4c2a6710b",
89
110
  ".claude/skills/goap-research-ed25519/scripts/learning_bridge.py": "74f8842978ba945ff78c2bd54702415dd87122e61919571e12a19c3cf1e56131",
90
111
  ".claude/skills/goap-research-ed25519/scripts/population_match.py": "bbd1d3346a6fb75d0e8526cb5d2fc8bc8613bb31ab63ffb0958d436d5e009054",
112
+ ".claude/skills/goap-research-ed25519/scripts/quote_provenance.py": "c78668234c881e5f9f81899d903b573eac1d51a04c7e8bc791f356739de4f329",
91
113
  ".claude/skills/goap-research-ed25519/scripts/risk_statement.py": "320ffece816e875f65624583846f44dc99461f672a0de7cda42be5ddf29d6de5",
92
114
  ".claude/skills/goap-research-ed25519/scripts/source_tiers.py": "e1aae76fad01693ab35b51466fc4369c04a5ac64230fd307e7b798dc5beeff7a",
93
- ".claude/skills/goap-research-ed25519/scripts/test_ed25519_verifier.py": "dcba1ce538ff946d6928f30a7c5cbcc37fddf712b6181f91f94c76e20c117ac5",
94
- ".claude/skills/goap-research-ed25519/scripts/test_evidence_provenance.py": "292bfcdcc086934905c77f1543d8400ee483166ff3ce26c79bb526c204320dbb",
115
+ ".claude/skills/goap-research-ed25519/scripts/test_ed25519_verifier.py": "9982a8a7f1cdff4d9cab7c90aeac6470dbc445c5f726e18befd29af09e180eaf",
116
+ ".claude/skills/goap-research-ed25519/scripts/test_evidence_provenance.py": "d16aca1e6c8951e081801a0ce363ad0b33fec8003e5d12d723fbd1f5c8bf4ffc",
95
117
  ".claude/skills/goap-research-ed25519/scripts/test_goap_planner.py": "7942ada069048b7e97bf2b6e920898a58517ccec090069f347399dbf1fc37731",
96
118
  ".claude/skills/goap-research-ed25519/scripts/test_population_match.py": "f33f72c0ba6305af1644e6b1a7f7635d3f33273344f19c14e7dbd2f819af0e7f",
119
+ ".claude/skills/goap-research-ed25519/scripts/test_quote_provenance.py": "c3fb6df236b1f432d1ecdcd8acacb95e2e091b436296eef43abe183b67b90b74",
97
120
  ".claude/skills/goap-research-ed25519/scripts/test_risk_absolute.py": "ab353db189650551c374cb772ba4a3a6929e3a2618f2f5c112eca4c3f69e46b6",
98
121
  ".claude/skills/goap-research-ed25519/scripts/test_signature_v3.py": "a04259296df104c9497c7b31d29556cb9a7ad4dd3339cbe3d8d32a4f53950d25",
99
- ".claude/skills/goap-research-ed25519/scripts/test_suite_completeness.py": "727c5d5b0dad215957012276ebc146397178255077e762ed7b88a60d8178d2ab",
100
- ".claude/skills/goap-research-ed25519/SKILL.md": "404cb696d537d29585ec35f97a86173a582cd6fcf8d5f172a4f5bbd75ec971a8",
122
+ ".claude/skills/goap-research-ed25519/scripts/test_suite_completeness.py": "8aba19a95d380f32ce8d8dc68c5d1b8d4e6b912152bd527e3ce9d60e41be1073",
123
+ ".claude/skills/goap-research-ed25519/SKILL.md": "c6503749a8bd8222d63542831c2003e16f1bc0239dd903d59a934cd2ff40d1c9",
101
124
  ".claude/skills/knowledge-extractor/examples/rate-limiting-extraction.md": "fab68772135532aaa7675dfca4ec068cfa68a847f964f872f201f08fb9ee4034",
102
125
  ".claude/skills/knowledge-extractor/modules/01-agent-review.md": "33395c8b87c4d7d1f63dff0891aaebcf50e302cbe2026005b3c6d51817f35a70",
103
126
  ".claude/skills/knowledge-extractor/modules/02-classify.md": "3b6a59cde451fc89e2e683b7cd35f5535d12cc6072cd40ca35cf7d5f61eb78aa",
@@ -106,16 +129,16 @@
106
129
  ".claude/skills/knowledge-extractor/references/artifact-categories.md": "3f8c920f57476272dd4886a792c60d2439b2dabd3f9bbc3dbb3bafc731b46dfe",
107
130
  ".claude/skills/knowledge-extractor/references/decontextualization-guide.md": "224ab90bfc6da35fc2bd17039e82f355eb8e1651ad89fd2b4667f7a7f41bd074",
108
131
  ".claude/skills/knowledge-extractor/references/maturity-model.md": "d036d0f4d4ccbaab806f4a70a3297b7a9f0700b28f8ce9d32d43699029b814ce",
109
- ".claude/skills/knowledge-extractor/SKILL.md": "ccfd23ead51b710c5197372e82522d17706a1a4e71143bc6f03d80f913bc0a67",
132
+ ".claude/skills/knowledge-extractor/SKILL.md": "3ac6d9832dd263eba21ccadb091e845dc2cfcb656c4cda447f744e16f96870c7",
110
133
  ".claude/skills/knowledge-extractor/templates/artifact-card.md": "61b77204be5099f5aa0b7179ef14409efc08873c32fb46df42069782c297521b",
111
134
  ".claude/skills/knowledge-extractor/templates/harvest-report.md": "a112dde3d3fab90405ed89c1b4a665003ca70cfc995a8af6a0cf67b2476037c2",
112
135
  ".claude/skills/knowledge-extractor/templates/toolkit-harvest.md": "71b4661956eb6dfb6860ff820b4a872bb243161ce4a18e03845b2bd54a70a2c8",
113
- ".claude/skills/pipeline-forge/examples/replicate-analysis.md": "57e31a5bbf320f383e1a7fc665635ee3ad025d3825d4b1dc6c331bcd9270f146",
114
- ".claude/skills/pipeline-forge/references/patterns-catalog.md": "94bca28d8df333005c2e8c3511586f05395a141c8c8c0225047f580cbee7e418",
136
+ ".claude/skills/pipeline-forge/examples/replicate-analysis.md": "9eaa0eda2b6b0c4eded68ce18d22e43d55073fb70cf631d7b5e89ba9798f221d",
137
+ ".claude/skills/pipeline-forge/references/patterns-catalog.md": "650f588eaf7b7e29e7045cf86326e9c89beb16e7694ceb95165c2e1c2ad82db3",
115
138
  ".claude/skills/pipeline-forge/references/quality-gates.md": "286a533eac25ca39429b200b66eb43b33092d3e85cd505bfa4c567f6e86b6eea",
116
- ".claude/skills/pipeline-forge/references/self-extracted-patterns.md": "ad67e502d1b82efd646440d90a2781cf0db3732a1f94294ad0905d0f7338e0b4",
117
- ".claude/skills/pipeline-forge/references/skill-anatomy.md": "ee91351ad53fdd924f358c4e30a291d5801e03c2c568b10e641edcb90a4ae10b",
118
- ".claude/skills/pipeline-forge/SKILL.md": "619e4fa03b9d289cfd143b1a0f5fe8e77ddbd48d6846dcaaad601ba4702f3787",
139
+ ".claude/skills/pipeline-forge/references/self-extracted-patterns.md": "190451eaddcbbb3f24616c446748a95e747f430882911576e2c89c3d718ca99f",
140
+ ".claude/skills/pipeline-forge/references/skill-anatomy.md": "e9ef3c7f173624bfd1d9eee392613b751a8df65d7eb581b05b5ed64acdda20f0",
141
+ ".claude/skills/pipeline-forge/SKILL.md": "66a135c30ed384b4db8088571735c8333b2bc8f06e736fda6075f8e17e59291c",
119
142
  ".claude/skills/pipeline-forge/templates/agent-template.md": "18ed69f9cce1cc4157f1e43895d6135eac3ff2a6ebd08fb2fb543658564bc3fd",
120
143
  ".claude/skills/pipeline-forge/templates/command-template.md": "b91a4ef084ba542801154c8b1fb2a086a6b404c3f7ee809ceb6ea633e2b55245",
121
144
  ".claude/skills/pipeline-forge/templates/pipeline-template.md": "952d2e1f050558dacbf86d2b2ad2c9bc671b1ce2809ce430593434998103a27c",
@@ -123,15 +146,16 @@
123
146
  ".claude/skills/problem-solver-enhanced/SKILL.md": "031378aa2e10c98928e35de07d454135e73550cd0c49f0cd886d53e4208d6b9f",
124
147
  ".claude/skills/requirements-validator/assets/templates/bdd-feature-template.feature": "5b1e47f10447ce574d0eb3917b69e2613b6e3f9c48b30ff5f4cfb57758c99a1d",
125
148
  ".claude/skills/requirements-validator/references/bdd-patterns.md": "04611a8c52c81f3a6d4fc2f9661ebc56159a125b6fb44a4d18b432e2b82de6e3",
149
+ ".claude/skills/requirements-validator/references/feature-report-contracts.md": "df263cbce17fb5d9dec6514561c66f6283b3f19e2fc85056f0531bac615be0f1",
126
150
  ".claude/skills/requirements-validator/references/invest-criteria.md": "ac6976adf776b9b60c784e1a0f6a0d96dd3332b16f4c12b72d3e59f9325bb626",
127
- ".claude/skills/requirements-validator/references/scoring-system.md": "49afe072f31f5b4f9a33f6b59487244f494b0f5587b6cc10c797c4de59510114",
151
+ ".claude/skills/requirements-validator/references/scoring-system.md": "72104b74f07e0610f67f00b246b5225a530203bff225bacf7bf384bc6fd21cdf",
128
152
  ".claude/skills/requirements-validator/references/smart-criteria.md": "619a33fdb6bc336872fdf9f1fc91924f8ccd3c2ebef023912124756692b45aef",
129
- ".claude/skills/requirements-validator/SKILL.md": "d2b8e71f4053c642f455a0f245ae18471ab25b7a21e0658f0fe410912a47bf8b",
153
+ ".claude/skills/requirements-validator/SKILL.md": "b4b394adf08feee552f39c83331398f119e0d4abf21e683fe4706da438b4a426",
130
154
  ".claude/skills/reverse-engineering-unicorn/examples/noom-cjm-example.md": "01d33586e26bf093a57a7a1082bf3bdba3af801bb8348a685c0418f76987a0b0",
131
155
  ".claude/skills/reverse-engineering-unicorn/examples/noom-module1-example.md": "7009cf2e2624a1254913ad2e1ff554e7ff675358b0b99bc0632f2e12132663a3",
132
156
  ".claude/skills/reverse-engineering-unicorn/modules/01-intelligence.md": "0770bd63a6a1eeb34e873cb101e2ba0cf88d507e9bc03242046eaa837b9f587c",
133
157
  ".claude/skills/reverse-engineering-unicorn/modules/02-product-customers.md": "499bbded50ddd368a62301083e828a42bd0223aa58322b6a952f00086b462972",
134
- ".claude/skills/reverse-engineering-unicorn/modules/025-cjm-prototype.md": "11e2e101c99d42306ac1d0931475c5a8899e929514e41a393b6173e03856cfc3",
158
+ ".claude/skills/reverse-engineering-unicorn/modules/025-cjm-prototype.md": "d9dd399cbb60d6b5fa9734ad44128a49790ef15bbde25c809d69d5c918601eb3",
135
159
  ".claude/skills/reverse-engineering-unicorn/modules/03-market-competition.md": "7c2e7164463371239d92f28153777e40ee0d6dad293d59886a4cf5b306fa3627",
136
160
  ".claude/skills/reverse-engineering-unicorn/modules/04-business-finance.md": "dd08226391d498a82f111f0da665ea7cea1fa8a97683fab11070f879142727f7",
137
161
  ".claude/skills/reverse-engineering-unicorn/modules/05-growth-engine.md": "84658390dc7beb590f70164b391ace915e42926660bc1015e4be300752b74a37",
@@ -141,7 +165,7 @@
141
165
  ".claude/skills/reverse-engineering-unicorn/references/jtbd-canvas.md": "7938e657af631109ca7b4752002c21ac84a7dad3a35cc522be088f814d102773",
142
166
  ".claude/skills/reverse-engineering-unicorn/SKILL.md": "20d6b667971f9749d091c1d47e2f75df957f259647cbb861ac54174280096c71",
143
167
  ".claude/skills/sparc-prd-mini/references/sparc-methodology.md": "9c93dafe8149590809ff6b27508d7df52c8efa7f31f8e8f8052b7124a6561fee",
144
- ".claude/skills/sparc-prd-mini/SKILL.md": "29c74d628f86f79fe2ba7b4d2a69b34de332519b8a11c945568e59830535742a",
168
+ ".claude/skills/sparc-prd-mini/SKILL.md": "b663793d1e1d1de028f91f2e266a191811bb610f97a12be7f95d62327589d53a",
145
169
  ".claude/skills/sparc-prd-mini/templates/CLAUDE.md": "9eeb66752cc4dec5c3c3fa5a8f7cfc3dd282f75d245bd36835f690a945b534ed",
146
170
  ".claude/skills/sparc-prd-mini/templates/prd.md": "7b4497bc76bb421fae7a07ecb46af01e021412180a394a5487a3c3c42dc004b6"
147
171
  }