@daniellins/power-claude 0.16.4 → 0.17.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.

Potentially problematic release.


This version of @daniellins/power-claude might be problematic. Click here for more details.

Files changed (77) hide show
  1. package/installer/motor-scripts.json +199 -35
  2. package/package.json +2 -2
  3. package/scripts/__fixtures__/sf17.3/criteria-baseline.json +18 -0
  4. package/scripts/__fixtures__/validate-spec-coverage/cli-com-orfao.spec.md +7 -0
  5. package/scripts/__fixtures__/validate-spec-coverage/cli-sem-orfao.spec.md +11 -0
  6. package/scripts/__fixtures__/validate-spec-coverage/contract4-noorfao.spec.md +11 -0
  7. package/scripts/__fixtures__/validate-spec-coverage/contract4.spec.md +11 -0
  8. package/scripts/__fixtures__/validate-spec-coverage/contract4.story.md +5 -0
  9. package/scripts/__fixtures__/validate-spec-coverage/coverage3-a.story.md +7 -0
  10. package/scripts/__fixtures__/validate-spec-coverage/coverage3-b.story.md +5 -0
  11. package/scripts/__fixtures__/validate-spec-coverage/coverage3.spec.md +9 -0
  12. package/scripts/__fixtures__/validate-spec-coverage/deferido-mutant.spec.md +7 -0
  13. package/scripts/__fixtures__/validate-spec-coverage/deferido-positive.spec.md +11 -0
  14. package/scripts/__fixtures__/validate-spec-coverage/deferido-trip-a-no-marker.spec.md +3 -0
  15. package/scripts/__fixtures__/validate-spec-coverage/deferido-trip-b-empty.spec.md +3 -0
  16. package/scripts/__fixtures__/validate-spec-coverage/deferido-trip-c-badanchor.spec.md +5 -0
  17. package/scripts/__fixtures__/validate-spec-coverage/deferido-trip-d-fenced.spec.md +11 -0
  18. package/scripts/__fixtures__/validate-spec-coverage/deferido-trip-e-dangling.spec.md +3 -0
  19. package/scripts/__fixtures__/validate-spec-coverage/dup-fr3.spec.md +11 -0
  20. package/scripts/__fixtures__/validate-spec-coverage/fr6-semantic.spec.md +5 -0
  21. package/scripts/__fixtures__/validate-spec-coverage/fr6-semantic.story.md +7 -0
  22. package/scripts/__fixtures__/validate-spec-coverage/rastreio-precision.story.md +19 -0
  23. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-covered-786b82a/README.txt +3 -0
  24. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-covered-786b82a/SPEC-linguagem-clara-fatia2.md +174 -0
  25. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-covered-786b82a/sf17.2.story.md +275 -0
  26. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-covered-786b82a/sf17.3.story.md +244 -0
  27. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-frozen-786b82a/README.txt +7 -0
  28. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-frozen-786b82a/SPEC-linguagem-clara-fatia2.md +174 -0
  29. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-frozen-786b82a/sf17.2.story.md +275 -0
  30. package/scripts/__fixtures__/validate-spec-coverage-corpus/sf17-fatia2-frozen-786b82a/sf17.3.story.md +242 -0
  31. package/scripts/__tests__/forge-register-entry-point.test.cjs +91 -0
  32. package/scripts/__tests__/pc-run-pod-apply-production.test.cjs +283 -0
  33. package/scripts/__tests__/pc-run-pod-content-carousel-b2.test.cjs +208 -0
  34. package/scripts/__tests__/pc-run-pod-content-carousel.test.cjs +219 -0
  35. package/scripts/__tests__/pc-run-pod-describe.test.cjs +158 -0
  36. package/scripts/__tests__/pc-run-pod-non-carousel-b2.test.cjs +227 -0
  37. package/scripts/__tests__/pc-run-pod-render-criteria.test.cjs +270 -0
  38. package/scripts/__tests__/pc-run-pod-resolve.test.cjs +150 -0
  39. package/scripts/__tests__/pc-run-pod-tokens.test.cjs +178 -0
  40. package/scripts/__tests__/pc-run-pod.test.cjs +30 -1
  41. package/scripts/__tests__/spec-wf-criteria-sync.test.cjs +171 -0
  42. package/scripts/__tests__/validate-spec-coverage.test.cjs +239 -0
  43. package/scripts/brief-leitura-obrigatoria.test.cjs +4 -2
  44. package/scripts/forge-generate.cjs +39 -8
  45. package/scripts/pc-run-pod.cjs +223 -40
  46. package/scripts/pod-export-executor.test.cjs +4 -1
  47. package/scripts/pod-export-postprocess.test.cjs +3 -1
  48. package/scripts/pod-export-service.test.cjs +3 -1
  49. package/scripts/smoke-pod-workflow.cjs +3 -1
  50. package/scripts/validate-spec-coverage.cjs +364 -0
  51. package/scripts/veto-checks.test.cjs +6 -2
  52. package/template/pods/academy/pod-spec.json +1 -1
  53. package/template/pods/academy/workflows/wf-materiais-revisao.yaml +1 -1
  54. package/template/pods/authority-content/pod-spec.json +1 -1
  55. package/template/pods/authority-content/workflows/wf-criacao-redteam.yaml +1 -1
  56. package/template/pods/automation/pod-spec.json +3 -3
  57. package/template/pods/automation/specs/wf-langgraph-build.spec.json +3 -3
  58. package/template/pods/automation/workflows/wf-langgraph-build.yaml +3 -3
  59. package/template/pods/automation/workflows/wf-n8n-build.yaml +3 -3
  60. package/template/pods/content-carousel/pod-spec.json +9 -2
  61. package/template/pods/content-carousel/workflows/wf-content-carousel.yaml +2 -2
  62. package/template/pods/hormozi-method/specs/wf-full-launch-sequence.spec.json +4 -4
  63. package/template/pods/hormozi-method/specs/wf-lead-magnet-pipeline.spec.json +3 -3
  64. package/template/pods/hormozi-method/specs/wf-money-model-design.spec.json +2 -2
  65. package/template/pods/hormozi-method/specs/wf-paid-ads-campaign.spec.json +3 -3
  66. package/template/pods/hormozi-method/specs/wf-scaling-diagnostic.spec.json +3 -3
  67. package/template/pods/hormozi-method/workflows/wf-full-launch-sequence.yaml +4 -4
  68. package/template/pods/hormozi-method/workflows/wf-lead-magnet-pipeline.yaml +3 -3
  69. package/template/pods/hormozi-method/workflows/wf-money-model-design.yaml +2 -2
  70. package/template/pods/hormozi-method/workflows/wf-paid-ads-campaign.yaml +3 -3
  71. package/template/pods/hormozi-method/workflows/wf-scaling-diagnostic.yaml +3 -3
  72. package/template/pods/squad-forge/agents/forge-chief.md +1 -1
  73. package/template/pods/squad-forge/pod-spec.json +2 -2
  74. package/template/pods/squad-forge/tasks/pipeline.md +20 -8
  75. package/template/pods/squad-forge/templates/register-tmpl.md +5 -0
  76. package/template/pods/squad-forge/workflows/wf-forge.smoke.json +2 -2
  77. package/template/pods/squad-forge/workflows/wf-forge.yaml +2 -2
@@ -1,39 +1,203 @@
1
1
  {
2
2
  "scripts": [
3
- { "path": "scripts/pc-run-pod.cjs", "owner": "skill:pc-run-pod", "reason": "referenced" },
4
- { "path": "scripts/pod-memory.cjs", "owner": "skill:pc-run-pod", "reason": "referenced" },
5
- { "path": "scripts/pod-memory-note.cjs", "owner": "skill:pc-run-pod", "reason": "referenced", "requiredBy": "skill:pc-run-pod" },
6
- { "path": "scripts/validate-pod-workflow.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
7
- { "path": "scripts/smoke-pod-workflow.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
8
- { "path": "scripts/harness-g5-lite.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
9
- { "path": "scripts/migration-manifest.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
10
- { "path": "scripts/watcher-audit.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
11
- { "path": "scripts/validate-no-clone.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
12
- { "path": "scripts/forge-assess-tier.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
13
- { "path": "scripts/validate-fidelity-output.cjs", "owner": "squad-forge/mind-extractor", "reason": "referenced" },
14
- { "path": "scripts/validate-source-audit.cjs", "owner": "squad-forge/mind-extractor", "reason": "referenced" },
15
- { "path": "scripts/arena.cjs", "owner": "skill:pc-arena", "reason": "referenced" },
16
- { "path": "scripts/forge-generate.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
17
- { "path": "scripts/forge-ingest-memory.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
18
- { "path": "scripts/forge-upgrade-pod.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
19
- { "path": "scripts/forge-harden-learning.cjs", "owner": "pod:squad-forge", "reason": "referenced" },
20
- { "path": "scripts/validate-branding.js", "owner": "pod:squad-forge", "reason": "require-dependency", "requiredBy": "scripts/validate-no-clone.cjs" },
21
- { "path": "scripts/validate-budgets.js", "owner": "pods:*", "reason": "referenced" },
22
- { "path": "scripts/veto-checks/lexical-check.cjs", "owner": "veto:command_check", "reason": "referenced", "requiredBy": "scripts/pc-run-pod.cjs" },
23
- { "path": "scripts/veto-checks/html-valid.cjs", "owner": "veto:command_check", "reason": "referenced", "requiredBy": "scripts/pc-run-pod.cjs" },
24
- { "path": "scripts/veto-checks/render-gate.cjs", "owner": "veto:command_check", "reason": "referenced", "requiredBy": "scripts/pc-run-pod.cjs" },
25
- { "path": "scripts/veto-checks/phash-gate.cjs", "owner": "veto:command_check", "reason": "referenced", "requiredBy": "scripts/pc-run-pod.cjs" },
26
- { "path": "scripts/veto-checks/render-png.cjs", "owner": "veto:command_check", "reason": "referenced", "requiredBy": "scripts/pc-run-pod.cjs" },
27
- { "path": "scripts/pc-run-pipeline.cjs", "owner": "skill:pc-pipeline", "reason": "referenced", "requiredBy": "skill:pc-pipeline" },
28
- { "path": "scripts/validate-pipeline.cjs", "owner": "skill:pc-pipeline", "reason": "require-dependency", "requiredBy": "scripts/pc-run-pipeline.cjs" },
29
- { "path": "scripts/pod-export-compile.cjs", "owner": "skill:pc-export", "reason": "referenced", "requiredBy": "skill:pc-export" },
30
- { "path": "scripts/pod-export-executor.cjs", "owner": "skill:pc-export", "reason": "referenced", "requiredBy": "skill:pc-export" },
31
- { "path": "scripts/pod-export-release.cjs", "owner": "skill:pc-export", "reason": "referenced", "requiredBy": "skill:pc-export" },
32
- { "path": "scripts/pod-export-tools.cjs", "owner": "skill:pc-export", "reason": "require-dependency", "requiredBy": "scripts/pod-export-executor.cjs" },
33
- { "path": "scripts/pod-export-postprocess.cjs", "owner": "skill:pc-export", "reason": "require-dependency", "requiredBy": "scripts/pod-export-executor.cjs" },
34
- { "path": "scripts/pod-export-service.cjs", "owner": "skill:pc-export", "reason": "referenced", "requiredBy": "skill:pc-export" },
35
- { "path": "scripts/pod-export-ui.cjs", "owner": "skill:pc-export", "reason": "referenced", "requiredBy": "skill:pc-export" },
36
- { "path": "scripts/validate-story-acs.cjs", "owner": "skill:pc-validate-story", "reason": "referenced" }
3
+ {
4
+ "path": "scripts/pc-run-pod.cjs",
5
+ "owner": "skill:pc-run-pod",
6
+ "reason": "referenced"
7
+ },
8
+ {
9
+ "path": "scripts/pod-memory.cjs",
10
+ "owner": "skill:pc-run-pod",
11
+ "reason": "referenced"
12
+ },
13
+ {
14
+ "path": "scripts/pod-memory-note.cjs",
15
+ "owner": "skill:pc-run-pod",
16
+ "reason": "referenced",
17
+ "requiredBy": "skill:pc-run-pod"
18
+ },
19
+ {
20
+ "path": "scripts/validate-pod-workflow.cjs",
21
+ "owner": "pod:squad-forge",
22
+ "reason": "referenced"
23
+ },
24
+ {
25
+ "path": "scripts/smoke-pod-workflow.cjs",
26
+ "owner": "pod:squad-forge",
27
+ "reason": "referenced"
28
+ },
29
+ {
30
+ "path": "scripts/harness-g5-lite.cjs",
31
+ "owner": "pod:squad-forge",
32
+ "reason": "referenced"
33
+ },
34
+ {
35
+ "path": "scripts/migration-manifest.cjs",
36
+ "owner": "pod:squad-forge",
37
+ "reason": "referenced"
38
+ },
39
+ {
40
+ "path": "scripts/watcher-audit.cjs",
41
+ "owner": "pod:squad-forge",
42
+ "reason": "referenced"
43
+ },
44
+ {
45
+ "path": "scripts/validate-no-clone.cjs",
46
+ "owner": "pod:squad-forge",
47
+ "reason": "referenced"
48
+ },
49
+ {
50
+ "path": "scripts/forge-assess-tier.cjs",
51
+ "owner": "pod:squad-forge",
52
+ "reason": "referenced"
53
+ },
54
+ {
55
+ "path": "scripts/validate-fidelity-output.cjs",
56
+ "owner": "squad-forge/mind-extractor",
57
+ "reason": "referenced"
58
+ },
59
+ {
60
+ "path": "scripts/validate-source-audit.cjs",
61
+ "owner": "squad-forge/mind-extractor",
62
+ "reason": "referenced"
63
+ },
64
+ {
65
+ "path": "scripts/arena.cjs",
66
+ "owner": "skill:pc-arena",
67
+ "reason": "referenced"
68
+ },
69
+ {
70
+ "path": "scripts/forge-generate.cjs",
71
+ "owner": "pod:squad-forge",
72
+ "reason": "referenced"
73
+ },
74
+ {
75
+ "path": "scripts/forge-ingest-memory.cjs",
76
+ "owner": "pod:squad-forge",
77
+ "reason": "referenced"
78
+ },
79
+ {
80
+ "path": "scripts/forge-upgrade-pod.cjs",
81
+ "owner": "pod:squad-forge",
82
+ "reason": "referenced"
83
+ },
84
+ {
85
+ "path": "scripts/forge-harden-learning.cjs",
86
+ "owner": "pod:squad-forge",
87
+ "reason": "referenced"
88
+ },
89
+ {
90
+ "path": "scripts/validate-branding.js",
91
+ "owner": "pod:squad-forge",
92
+ "reason": "require-dependency",
93
+ "requiredBy": "scripts/validate-no-clone.cjs"
94
+ },
95
+ {
96
+ "path": "scripts/validate-budgets.js",
97
+ "owner": "pods:*",
98
+ "reason": "referenced"
99
+ },
100
+ {
101
+ "path": "scripts/veto-checks/lexical-check.cjs",
102
+ "owner": "veto:command_check",
103
+ "reason": "referenced",
104
+ "requiredBy": "scripts/pc-run-pod.cjs"
105
+ },
106
+ {
107
+ "path": "scripts/veto-checks/html-valid.cjs",
108
+ "owner": "veto:command_check",
109
+ "reason": "referenced",
110
+ "requiredBy": "scripts/pc-run-pod.cjs"
111
+ },
112
+ {
113
+ "path": "scripts/veto-checks/render-gate.cjs",
114
+ "owner": "veto:command_check",
115
+ "reason": "referenced",
116
+ "requiredBy": "scripts/pc-run-pod.cjs"
117
+ },
118
+ {
119
+ "path": "scripts/veto-checks/phash-gate.cjs",
120
+ "owner": "veto:command_check",
121
+ "reason": "referenced",
122
+ "requiredBy": "scripts/pc-run-pod.cjs"
123
+ },
124
+ {
125
+ "path": "scripts/veto-checks/render-png.cjs",
126
+ "owner": "veto:command_check",
127
+ "reason": "referenced",
128
+ "requiredBy": "scripts/pc-run-pod.cjs"
129
+ },
130
+ {
131
+ "path": "scripts/pc-run-pipeline.cjs",
132
+ "owner": "skill:pc-pipeline",
133
+ "reason": "referenced",
134
+ "requiredBy": "skill:pc-pipeline"
135
+ },
136
+ {
137
+ "path": "scripts/validate-pipeline.cjs",
138
+ "owner": "skill:pc-pipeline",
139
+ "reason": "require-dependency",
140
+ "requiredBy": "scripts/pc-run-pipeline.cjs"
141
+ },
142
+ {
143
+ "path": "scripts/pod-export-compile.cjs",
144
+ "owner": "skill:pc-export",
145
+ "reason": "referenced",
146
+ "requiredBy": "skill:pc-export"
147
+ },
148
+ {
149
+ "path": "scripts/pod-export-executor.cjs",
150
+ "owner": "skill:pc-export",
151
+ "reason": "referenced",
152
+ "requiredBy": "skill:pc-export"
153
+ },
154
+ {
155
+ "path": "scripts/pod-export-release.cjs",
156
+ "owner": "skill:pc-export",
157
+ "reason": "referenced",
158
+ "requiredBy": "skill:pc-export"
159
+ },
160
+ {
161
+ "path": "scripts/pod-export-tools.cjs",
162
+ "owner": "skill:pc-export",
163
+ "reason": "require-dependency",
164
+ "requiredBy": "scripts/pod-export-executor.cjs"
165
+ },
166
+ {
167
+ "path": "scripts/pod-export-postprocess.cjs",
168
+ "owner": "skill:pc-export",
169
+ "reason": "require-dependency",
170
+ "requiredBy": "scripts/pod-export-executor.cjs"
171
+ },
172
+ {
173
+ "path": "scripts/pod-export-service.cjs",
174
+ "owner": "skill:pc-export",
175
+ "reason": "referenced",
176
+ "requiredBy": "skill:pc-export"
177
+ },
178
+ {
179
+ "path": "scripts/pod-export-ui.cjs",
180
+ "owner": "skill:pc-export",
181
+ "reason": "referenced",
182
+ "requiredBy": "skill:pc-export"
183
+ },
184
+ {
185
+ "path": "scripts/validate-story-acs.cjs",
186
+ "owner": "skill:pc-validate-story",
187
+ "reason": "referenced"
188
+ }
37
189
  ],
38
- "exclude": ["*.test.cjs", "__tests__/", "__fixtures__/", "validate-install.js", "validate-adopt.js", "validate-update-scope-motor.js", "owner-layer.cjs", "derive-ready-transitions.cjs", "validate-git-vetor.cjs", "build-public-tree.cjs"]
190
+ "exclude": [
191
+ "*.test.cjs",
192
+ "__tests__/",
193
+ "__fixtures__/",
194
+ "validate-install.js",
195
+ "validate-adopt.js",
196
+ "validate-update-scope-motor.js",
197
+ "owner-layer.cjs",
198
+ "derive-ready-transitions.cjs",
199
+ "validate-git-vetor.cjs",
200
+ "build-public-tree.cjs",
201
+ "validate-spec-coverage.cjs"
202
+ ]
39
203
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@daniellins/power-claude",
3
- "version": "0.16.4",
3
+ "version": "0.17.0",
4
4
  "description": "Lean, budget-gated agent framework for Claude Code — pods by job-to-be-done",
5
5
  "author": "Daniel Lins",
6
6
  "license": "MIT",
@@ -28,7 +28,7 @@
28
28
  "scripts"
29
29
  ],
30
30
  "scripts": {
31
- "test": "node scripts/validate-install.js && node scripts/validate-adopt.js && node scripts/validate-update-scope-motor.js && node scripts/__tests__/validate-pod-workflow.test.cjs && node scripts/__tests__/pc-run-pod.test.cjs && node scripts/__tests__/pc-run-pod-counter.test.cjs && node scripts/pc-run-pod-countgte.test.cjs && node scripts/forge.test.cjs && node scripts/forge-assess-tier.test.cjs && node scripts/forge-additive.test.cjs && node scripts/forge-canonical.test.cjs && node scripts/migration-manifest.test.cjs && node scripts/migration-manifest-sf3.2.test.cjs && node scripts/migration-manifest-sf3.3.test.cjs && node scripts/migration-manifest-sf5.5.test.cjs && node scripts/validate-no-clone.test.cjs && node scripts/migrate-squad-orchestration.test.cjs && node scripts/pod-memory.test.cjs && node scripts/pod-memory-budget.test.cjs && node scripts/pod-memory-note.test.cjs && node scripts/forge-harden-learning.test.cjs && node scripts/harden-knowledge.test.cjs && node scripts/consolidate-knowledge-runner.test.cjs && node scripts/smoke-pod-workflow.cjs scripts/__fixtures__/smoke-canary/workflows/wf-canary.yaml && node scripts/smoke-sweep.test.cjs && node scripts/smoke-isolation.test.cjs && node scripts/harness-g5-lite.test.cjs && node scripts/__tests__/motor-scripts.test.cjs && node scripts/validate-fidelity-output.test.cjs && node scripts/validate-source-audit.test.cjs && node scripts/arena.test.cjs && node scripts/veto-checks.test.cjs && node scripts/phash-gate.test.cjs && node scripts/render-png.test.cjs && node scripts/hn-carousel-contrato-entrada.test.cjs && node scripts/anti-path.test.cjs && node scripts/brief-leitura-obrigatoria.test.cjs && node scripts/pc-run-pipeline.test.cjs && node scripts/pod-export-compile.test.cjs && node scripts/pod-export-executor.test.cjs && node scripts/pod-export-postprocess.test.cjs && node scripts/pod-export-release.test.cjs && node scripts/pod-export-service.test.cjs && node scripts/pod-export-ui.test.cjs && node scripts/pod-export-hardening.test.cjs && node scripts/pod-export-queue-race.test.cjs && node scripts/npm-scope-invocation.test.cjs && node scripts/default-funcional.test.cjs && node scripts/owner-layer.test.cjs && node scripts/__tests__/enforce-cycle-authority.test.cjs && node scripts/__tests__/enforce-git-push-authority.test.cjs && node scripts/__tests__/validate-story-acs.test.cjs && node scripts/__tests__/enforce-ready-oracles.test.cjs && node scripts/__tests__/derive-ready-transitions.test.cjs && node installer/__tests__/doctor-ready-oracles.test.cjs && node installer/__tests__/merge-settings.test.cjs",
31
+ "test": "node scripts/validate-install.js && node scripts/validate-adopt.js && node scripts/validate-update-scope-motor.js && node scripts/__tests__/validate-pod-workflow.test.cjs && node scripts/__tests__/pc-run-pod.test.cjs && node scripts/__tests__/pc-run-pod-tokens.test.cjs && node scripts/__tests__/pc-run-pod-describe.test.cjs && node scripts/__tests__/pc-run-pod-resolve.test.cjs && node scripts/__tests__/pc-run-pod-render-criteria.test.cjs && node scripts/__tests__/pc-run-pod-apply-production.test.cjs && node scripts/__tests__/pc-run-pod-content-carousel.test.cjs && node scripts/__tests__/pc-run-pod-content-carousel-b2.test.cjs && node scripts/__tests__/pc-run-pod-non-carousel-b2.test.cjs && node scripts/__tests__/pc-run-pod-counter.test.cjs && node scripts/pc-run-pod-countgte.test.cjs && node scripts/forge.test.cjs && node scripts/forge-assess-tier.test.cjs && node scripts/forge-additive.test.cjs && node scripts/forge-canonical.test.cjs && node scripts/__tests__/forge-register-entry-point.test.cjs && node scripts/migration-manifest.test.cjs && node scripts/migration-manifest-sf3.2.test.cjs && node scripts/migration-manifest-sf3.3.test.cjs && node scripts/migration-manifest-sf5.5.test.cjs && node scripts/validate-no-clone.test.cjs && node scripts/migrate-squad-orchestration.test.cjs && node scripts/pod-memory.test.cjs && node scripts/pod-memory-budget.test.cjs && node scripts/pod-memory-note.test.cjs && node scripts/forge-harden-learning.test.cjs && node scripts/harden-knowledge.test.cjs && node scripts/consolidate-knowledge-runner.test.cjs && node scripts/smoke-pod-workflow.cjs scripts/__fixtures__/smoke-canary/workflows/wf-canary.yaml && node scripts/smoke-sweep.test.cjs && node scripts/smoke-isolation.test.cjs && node scripts/harness-g5-lite.test.cjs && node scripts/__tests__/motor-scripts.test.cjs && node scripts/validate-fidelity-output.test.cjs && node scripts/validate-source-audit.test.cjs && node scripts/arena.test.cjs && node scripts/veto-checks.test.cjs && node scripts/phash-gate.test.cjs && node scripts/render-png.test.cjs && node scripts/hn-carousel-contrato-entrada.test.cjs && node scripts/anti-path.test.cjs && node scripts/brief-leitura-obrigatoria.test.cjs && node scripts/pc-run-pipeline.test.cjs && node scripts/pod-export-compile.test.cjs && node scripts/pod-export-executor.test.cjs && node scripts/pod-export-postprocess.test.cjs && node scripts/pod-export-release.test.cjs && node scripts/pod-export-service.test.cjs && node scripts/pod-export-ui.test.cjs && node scripts/pod-export-hardening.test.cjs && node scripts/pod-export-queue-race.test.cjs && node scripts/npm-scope-invocation.test.cjs && node scripts/default-funcional.test.cjs && node scripts/owner-layer.test.cjs && node scripts/__tests__/enforce-cycle-authority.test.cjs && node scripts/__tests__/enforce-git-push-authority.test.cjs && node scripts/__tests__/validate-story-acs.test.cjs && node scripts/__tests__/validate-spec-coverage.test.cjs && node scripts/__tests__/spec-wf-criteria-sync.test.cjs && node scripts/__tests__/enforce-ready-oracles.test.cjs && node scripts/__tests__/derive-ready-transitions.test.cjs && node installer/__tests__/doctor-ready-oracles.test.cjs && node installer/__tests__/merge-settings.test.cjs",
32
32
  "validate": "node scripts/validate-budgets.js template/pods template/.claude/agents && node scripts/validate-branding.js && node scripts/validate-no-clone.cjs template && node scripts/validate-git-vetor.cjs"
33
33
  }
34
34
  }
@@ -0,0 +1,18 @@
1
+ {
2
+ "mm-copy": {
3
+ "wf": "template/pods/hormozi-method/workflows/wf-money-model-design.yaml",
4
+ "criteria": "Conferência final do checklist de 8 itens: o retorno por cliente sobre o custo de aquisição é de pelo menos 3 para 1 (LTGP:CAC>=3:1); o caixa fica positivo em até 30 dias (30-day cash flow+); 5+ ofertas; existe uma oferta de continuidade (continuity presente); o preço está ancorado em pelo menos 3 vezes o valor (ancoragem 3x+); há um downsell (oferta de baixo custo para quem recusa a principal); a copy está completa, sem nenhuma peça faltando; a sequência do funil está desenhada (sequência mapeada). Esta etapa reconfere pela 2ª vez o que a Fase 4 do processo já produziu: os itens numéricos (retorno sobre custo, caixa em 30 dias) são conferidos aqui como cálculo e julgamento seu, não como veto automático da máquina."
5
+ },
6
+ "paid-criativos": {
7
+ "wf": "template/pods/hormozi-method/workflows/wf-paid-ads-campaign.yaml",
8
+ "criteria": "Os hooks estão distribuídos por todos os 5 níveis de consciência do público (awareness), sem concentrar 100% num único nível, seguindo a proporção 70-20-10; a fonte de inspiração criativa (swipe file) está documentada; e há congruência landing page × ad verificada (a landing page bate com o anúncio). Isto é uma avaliação qualitativa, um julgamento seu — nunca um veto automático da máquina: as duas condições de ter 100% num único awareness level e de a landing não bater com o anúncio são congruência qualitativa que só o seu olho decide. Já os dois volumes mínimos exigidos — Menos de 50 hooks e Menos de 150 combinações — esses SIM a máquina confere sozinha, de forma automática e sem exigir o seu julgamento, distintos do julgamento qualitativo acima."
9
+ },
10
+ "lg-handoff": {
11
+ "wf": "template/pods/automation/workflows/wf-langgraph-build.yaml",
12
+ "criteria": "Regra inegociável do pod, item 3 do guia do pod: o runbook (o documento de operação) tem de ser OPERÁVEL — precisa explicar o que a automação faz, como saber que ela quebrou, como reexecutar com segurança, trazer a configuração de checkpointer/persistência (o mecanismo que retoma de onde parou após uma falha) e dizer quem é o dono. Julgar se esse runbook está completo é decisão sua, um julgamento de completude — não uma checagem automática da máquina, nunca um veto. A única fatia objetiva que a máquina confere sozinha é a existência em disco do arquivo do entregável: entregável existe (todo o resto da lista acima é julgamento seu)."
13
+ },
14
+ "n8n-handoff": {
15
+ "wf": "template/pods/automation/workflows/wf-n8n-build.yaml",
16
+ "criteria": "Regra inegociável do pod, item 3 do guia do pod: o runbook (o documento de operação) tem de ser OPERÁVEL — precisa explicar o que a automação faz, como saber que ela quebrou (onde olhar quando falhar), como reexecutar com segurança, listar as credenciais necessárias e dizer quem é o dono. Julgar se esse runbook está completo e com qualidade é decisão sua, um julgamento humano — não uma checagem automática da máquina, nunca um veto. A única fatia objetiva que a máquina confere sozinha é a existência em disco do arquivo do entregável: o entregável existe (todo o resto da lista acima é julgamento seu)."
17
+ }
18
+ }
@@ -0,0 +1,7 @@
1
+ # SPEC sintética — CLI exit 1 (fixture AC4, invocação single-arg)
2
+
3
+ Sem story e sem waiver, o requisito é órfão ⇒ exit 1, nome impresso.
4
+
5
+ **FR-1.** requisito sem cobertura e sem deferimento — órfão.
6
+
7
+ **NFR-1.** segundo requisito órfão.
@@ -0,0 +1,11 @@
1
+ # SPEC sintética — CLI exit 0 (fixture AC4, invocação single-arg)
2
+
3
+ Todos os requisitos deferidos por marcador válido; sem story, `orfao` é vazio ⇒ exit 0.
4
+
5
+ **FR-1.** um requisito deliberadamente deferido. _(Deferido: PA-1.)_
6
+
7
+ **NFR-1.** outro deferido. _(Deferido: PA-1.)_
8
+
9
+ ## 8. Perguntas de produto abertas
10
+
11
+ **PA-1.** a âncora que resolve os deferimentos acima.
@@ -0,0 +1,11 @@
1
+ # SPEC sintética — contrato de 4 conjuntos, SEM órfão (fixture AC14, 2ª SPEC)
2
+
3
+ Idêntica à contract4.spec.md, mas sem o FR-2 órfão: exit 0, `deferido` ainda impresso.
4
+
5
+ **FR-1.** requisito coberto (a story o cita).
6
+
7
+ **NFR-1.** requisito com waiver válido. _(Deferido: ADR-999.)_
8
+
9
+ ## Referências
10
+
11
+ ADR-999 é citado aqui, em outro ponto do fixture, para que a âncora do deferimento do NFR-1 resolva.
@@ -0,0 +1,11 @@
1
+ # SPEC sintética — contrato de 4 conjuntos (fixture AC14)
2
+
3
+ **FR-1.** requisito coberto (a story o cita).
4
+
5
+ **FR-2.** requisito órfão (nenhuma story o cita, sem waiver).
6
+
7
+ **NFR-1.** requisito com waiver válido. _(Deferido: ADR-999.)_
8
+
9
+ ## Referências
10
+
11
+ ADR-999 é citado aqui, em outro ponto do fixture, para que a âncora do deferimento do NFR-1 resolva (não seja pendurada).
@@ -0,0 +1,5 @@
1
+ # Story sintética — cobre FR-1 (fixture AC14)
2
+
3
+ ## Acceptance Criteria
4
+
5
+ 1. **Cobre FR-1.** Exercita o comportamento de FR-1. _(Rastreio: FR-1.)_
@@ -0,0 +1,7 @@
1
+ # Story sintética A — cobre FR-1 e NFR-1 (fixture AC3)
2
+
3
+ ## Acceptance Criteria
4
+
5
+ 1. **Cobre FR-1.** _(Rastreio: FR-1.)_
6
+
7
+ 2. **Cobre NFR-1.** _(Rastreio: NFR-1.)_
@@ -0,0 +1,5 @@
1
+ # Story sintética B — cobre FR-2 (fixture AC3)
2
+
3
+ ## Acceptance Criteria
4
+
5
+ 1. **Cobre FR-2.** _(Rastreio: FR-2.)_
@@ -0,0 +1,9 @@
1
+ # SPEC sintética — checkCoverage nomeia cada órfã (fixture AC3)
2
+
3
+ **FR-1.** primeiro.
4
+
5
+ **FR-2.** segundo.
6
+
7
+ **FR-3.** terceiro — ficará órfão (nenhuma story o cita).
8
+
9
+ **NFR-1.** um não-funcional.
@@ -0,0 +1,7 @@
1
+ # SPEC sintética — mutante de remoção do marcador (fixture AC13)
2
+
3
+ **FR-1.** requisito deferido por marcador válido e resolvível. _(Deferido: PA-2.)_
4
+
5
+ ## 8. Perguntas de produto abertas
6
+
7
+ **PA-2.** âncora que resolve o deferimento acima.
@@ -0,0 +1,11 @@
1
+ # SPEC sintética — extractDeferrals caso POSITIVO (fixture AC11)
2
+
3
+ **FR-1.** requisito comum, sem marcador.
4
+
5
+ **NFR-2.** portabilidade — deferida. _(Deferido: PA-2.)_
6
+
7
+ **FR-3.** integração — deferida com razão livre. _(Deferido: ADR-005, razão livre)_
8
+
9
+ ## 8. Perguntas de produto abertas
10
+
11
+ **PA-2.** âncora que resolve o deferimento do NFR-2. Ver também ADR-005 para o do FR-3.
@@ -0,0 +1,3 @@
1
+ # Tripwire (a) — requisito SEM marcador (fixture AC12a)
2
+
3
+ **FR-1.** requisito sem nenhum marcador de deferimento — permanece candidato a orfao, ausente do mapa de extractDeferrals.
@@ -0,0 +1,3 @@
1
+ # Tripwire (b) — âncora VAZIA (fixture AC12b)
2
+
3
+ **FR-1.** marcador presente mas sem âncora — não é waiver válido. _(Deferido: )_
@@ -0,0 +1,5 @@
1
+ # Tripwire (c) — âncora FORA DO PADRÃO (fixture AC12c)
2
+
3
+ **FR-1.** âncora não casa (PA-\d+|ADR-\d+|SF\d+[\w.]*) — não é waiver válido. _(Deferido: XYZ-9)_
4
+
5
+ XYZ-9 ocorre também aqui, para provar que a rejeição é pela FORMA da âncora, não por estar pendurada.
@@ -0,0 +1,11 @@
1
+ # Tripwire (d) — marcador DENTRO DE FENCE (fixture AC12d)
2
+
3
+ **FR-1.** requisito cujo único marcador de deferimento aparece só como dado literal de exemplo, dentro de um bloco fenced — não é a declaração real, não é waiver válido:
4
+
5
+ ```oraculo
6
+ Exemplo de sintaxe do marcador: _(Deferido: PA-99)_
7
+ ```
8
+
9
+ ## 8. Perguntas de produto abertas
10
+
11
+ **PA-99.** a âncora RESOLVE (ocorre aqui fora do fence) — provando que a rejeição é pelo FENCE, não por âncora pendurada.
@@ -0,0 +1,3 @@
1
+ # Tripwire (e) — âncora PENDURADA (fixture AC12e)
2
+
3
+ **FR-1.** âncora bem formada, mas não ocorre em nenhum outro ponto da SPEC — aponta para nada, não é waiver auditável. _(Deferido: PA-77)_
@@ -0,0 +1,11 @@
1
+ # SPEC sintética — FR-3 declarada DUAS vezes (fixture AC1)
2
+
3
+ **FR-1.** primeiro requisito.
4
+
5
+ **FR-2.** segundo requisito.
6
+
7
+ **FR-3.** terceira, primeira declaração.
8
+
9
+ **FR-3.** terceira, SEGUNDA declaração (erro da própria SPEC — deve ser sinalizado, nunca silenciado).
10
+
11
+ **NFR-1.** um não-funcional.
@@ -0,0 +1,5 @@
1
+ # SPEC sintética — fronteira FR-6 (cobertura é sintática, fixture AC10)
2
+
3
+ **FR-1.** requisito coberto por citação válida.
4
+
5
+ **FR-2.** requisito coberto por uma citação textualmente válida, ainda que o AC não trate do seu mérito.
@@ -0,0 +1,7 @@
1
+ # Story sintética — fronteira FR-6 (fixture AC10)
2
+
3
+ ## Acceptance Criteria
4
+
5
+ 1. **Cobre FR-1 de fato.** Testa exatamente o comportamento de FR-1. _(Rastreio: FR-1.)_
6
+
7
+ 2. **Teste genérico, sem relação de conteúdo com a FR citada.** O corpo deste AC é deliberadamente genérico e não trata, em substância, do requisito citado na tag — mas a citação de rastreio existe e é textualmente válida. O gate é sintático (FR-6): conta como cobertura mesmo assim; julgar o mérito é o item 3 do checklist humano do PO, nunca este instrumento. _(Rastreio: FR-2.)_
@@ -0,0 +1,19 @@
1
+ # Story sintética — precisão fence-aware da extração de rastreio (fixture AC2)
2
+
3
+ ## Acceptance Criteria
4
+
5
+ 1. **Caso (a) — rastreio REAL.** Um AC de verdade cuja tag de fechamento cita FR-3 na convenção real. _(Rastreio: FR-3.)_
6
+
7
+ 2. **Caso (b) — menção em PROSA.** Este AC diz "isto resolve FR-3 também" no corpo, mas fora de qualquer bloco Rastreio — não conta como cobertura, não tem tag.
8
+
9
+ 3. **Caso (c) — FR-3 dentro de fence.** Este AC traz um oráculo com dado literal de exemplo:
10
+
11
+ ```oraculo
12
+ node -e "const r = check(); assert(r.includes('FR-3'))"
13
+ ```
14
+
15
+ A ocorrência de FR-3 acima está dentro do fence e é dado de exemplo, nunca citação de rastreio.
16
+
17
+ ## Tasks
18
+
19
+ - nada
@@ -0,0 +1,3 @@
1
+ Cópia do corpus congelado 786b82a (frozen) COM UMA ÚNICA LINHA adicionada a um
2
+ AC de sf17.3.story.md: '_(Rastreio: FR-6.)_'. Prova de não-vacuidade (AC6): a
3
+ adição faz FR-6 sair de 'orfao'. Diff mínimo vs. o frozen — só essa linha.