@nforma.ai/nforma 0.2.1 → 0.28.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.
Files changed (201) hide show
  1. package/README.md +2 -2
  2. package/agents/{qgsd-codebase-mapper.md → nf-codebase-mapper.md} +1 -1
  3. package/agents/{qgsd-debugger.md → nf-debugger.md} +3 -3
  4. package/agents/{qgsd-executor.md → nf-executor.md} +14 -14
  5. package/agents/{qgsd-integration-checker.md → nf-integration-checker.md} +1 -1
  6. package/agents/{qgsd-phase-researcher.md → nf-phase-researcher.md} +6 -6
  7. package/agents/{qgsd-plan-checker.md → nf-plan-checker.md} +9 -9
  8. package/agents/{qgsd-planner.md → nf-planner.md} +9 -9
  9. package/agents/{qgsd-project-researcher.md → nf-project-researcher.md} +2 -2
  10. package/agents/{qgsd-quorum-orchestrator.md → nf-quorum-orchestrator.md} +33 -33
  11. package/agents/{qgsd-quorum-slot-worker.md → nf-quorum-slot-worker.md} +3 -3
  12. package/agents/{qgsd-quorum-synthesizer.md → nf-quorum-synthesizer.md} +3 -3
  13. package/agents/{qgsd-quorum-test-worker.md → nf-quorum-test-worker.md} +1 -1
  14. package/agents/{qgsd-quorum-worker.md → nf-quorum-worker.md} +6 -6
  15. package/agents/{qgsd-research-synthesizer.md → nf-research-synthesizer.md} +5 -5
  16. package/agents/{qgsd-roadmapper.md → nf-roadmapper.md} +3 -3
  17. package/agents/{qgsd-verifier.md → nf-verifier.md} +8 -8
  18. package/bin/accept-debug-invariant.cjs +2 -2
  19. package/bin/account-manager.cjs +10 -10
  20. package/bin/aggregate-requirements.cjs +1 -1
  21. package/bin/analyze-assumptions.cjs +3 -3
  22. package/bin/analyze-state-space.cjs +14 -14
  23. package/bin/assumption-register.cjs +146 -0
  24. package/bin/attribute-trace-divergence.cjs +1 -1
  25. package/bin/auth-drivers/gh-cli.cjs +1 -1
  26. package/bin/auth-drivers/pool.cjs +1 -1
  27. package/bin/autoClosePtoF.cjs +3 -3
  28. package/bin/budget-tracker.cjs +77 -0
  29. package/bin/build-layer-manifest.cjs +153 -0
  30. package/bin/call-quorum-slot.cjs +3 -3
  31. package/bin/ccr-secure-config.cjs +5 -5
  32. package/bin/check-bundled-sdks.cjs +1 -1
  33. package/bin/check-mcp-health.cjs +1 -1
  34. package/bin/check-provider-health.cjs +6 -6
  35. package/bin/check-spec-sync.cjs +26 -26
  36. package/bin/check-trace-schema-drift.cjs +5 -5
  37. package/bin/conformance-schema.cjs +2 -2
  38. package/bin/cross-layer-dashboard.cjs +297 -0
  39. package/bin/design-impact.cjs +377 -0
  40. package/bin/detect-coverage-gaps.cjs +7 -7
  41. package/bin/failure-mode-catalog.cjs +227 -0
  42. package/bin/failure-taxonomy.cjs +177 -0
  43. package/bin/formal-scope-scan.cjs +179 -0
  44. package/bin/gate-a-grounding.cjs +334 -0
  45. package/bin/gate-b-abstraction.cjs +243 -0
  46. package/bin/gate-c-validation.cjs +166 -0
  47. package/bin/generate-formal-specs.cjs +17 -17
  48. package/bin/generate-petri-net.cjs +3 -3
  49. package/bin/generate-tla-cfg.cjs +5 -5
  50. package/bin/git-heatmap.cjs +571 -0
  51. package/bin/harness-diagnostic.cjs +326 -0
  52. package/bin/hazard-model.cjs +261 -0
  53. package/bin/install-formal-tools.cjs +1 -1
  54. package/bin/install.js +184 -139
  55. package/bin/instrumentation-map.cjs +178 -0
  56. package/bin/invariant-catalog.cjs +437 -0
  57. package/bin/issue-classifier.cjs +2 -2
  58. package/bin/load-baseline-requirements.cjs +4 -4
  59. package/bin/manage-agents-core.cjs +32 -32
  60. package/bin/migrate-to-slots.cjs +39 -39
  61. package/bin/mismatch-register.cjs +217 -0
  62. package/bin/nForma.cjs +176 -81
  63. package/bin/{qgsd-solve.cjs → nf-solve.cjs} +327 -14
  64. package/bin/observe-config.cjs +8 -0
  65. package/bin/observe-debt-writer.cjs +1 -1
  66. package/bin/observe-handler-deps.cjs +356 -0
  67. package/bin/observe-handler-grafana.cjs +2 -17
  68. package/bin/observe-handler-internal.cjs +5 -5
  69. package/bin/observe-handler-logstash.cjs +2 -17
  70. package/bin/observe-handler-prometheus.cjs +2 -17
  71. package/bin/observe-handler-upstream.cjs +251 -0
  72. package/bin/observe-handlers.cjs +12 -33
  73. package/bin/observe-render.cjs +68 -22
  74. package/bin/observe-utils.cjs +37 -0
  75. package/bin/observed-fsm.cjs +324 -0
  76. package/bin/planning-paths.cjs +6 -0
  77. package/bin/polyrepo.cjs +1 -1
  78. package/bin/probe-quorum-slots.cjs +1 -1
  79. package/bin/promote-gate-maturity.cjs +274 -0
  80. package/bin/promote-model.cjs +1 -1
  81. package/bin/propose-debug-invariants.cjs +1 -1
  82. package/bin/quorum-cache.cjs +144 -0
  83. package/bin/quorum-consensus-gate.cjs +1 -1
  84. package/bin/quorum-slot-dispatch.cjs +6 -6
  85. package/bin/requirements-core.cjs +1 -1
  86. package/bin/review-mcp-logs.cjs +1 -1
  87. package/bin/risk-heatmap.cjs +151 -0
  88. package/bin/run-account-manager-tlc.cjs +4 -4
  89. package/bin/run-account-pool-alloy.cjs +2 -2
  90. package/bin/run-alloy.cjs +2 -2
  91. package/bin/run-audit-alloy.cjs +2 -2
  92. package/bin/run-breaker-tlc.cjs +3 -3
  93. package/bin/run-formal-check.cjs +9 -9
  94. package/bin/run-formal-verify.cjs +30 -9
  95. package/bin/run-installer-alloy.cjs +2 -2
  96. package/bin/run-oscillation-tlc.cjs +4 -4
  97. package/bin/run-phase-tlc.cjs +1 -1
  98. package/bin/run-protocol-tlc.cjs +4 -4
  99. package/bin/run-quorum-composition-alloy.cjs +2 -2
  100. package/bin/run-sensitivity-sweep.cjs +2 -2
  101. package/bin/run-stop-hook-tlc.cjs +3 -3
  102. package/bin/run-tlc.cjs +21 -21
  103. package/bin/run-transcript-alloy.cjs +2 -2
  104. package/bin/secrets.cjs +5 -5
  105. package/bin/security-sweep.cjs +238 -0
  106. package/bin/sensitivity-report.cjs +3 -3
  107. package/bin/set-secret.cjs +5 -5
  108. package/bin/setup-telemetry-cron.sh +3 -3
  109. package/bin/stall-detector.cjs +126 -0
  110. package/bin/state-candidates.cjs +206 -0
  111. package/bin/sync-baseline-requirements.cjs +1 -1
  112. package/bin/telemetry-collector.cjs +1 -1
  113. package/bin/test-changed.cjs +111 -0
  114. package/bin/test-recipe-gen.cjs +250 -0
  115. package/bin/trace-corpus-stats.cjs +211 -0
  116. package/bin/unified-mcp-server.mjs +3 -3
  117. package/bin/update-scoreboard.cjs +1 -1
  118. package/bin/validate-memory.cjs +2 -2
  119. package/bin/validate-traces.cjs +10 -10
  120. package/bin/verify-quorum-health.cjs +66 -5
  121. package/bin/xstate-to-tla.cjs +4 -4
  122. package/bin/xstate-trace-walker.cjs +3 -3
  123. package/commands/{qgsd → nf}/add-phase.md +3 -3
  124. package/commands/{qgsd → nf}/add-requirement.md +3 -3
  125. package/commands/{qgsd → nf}/add-todo.md +3 -3
  126. package/commands/{qgsd → nf}/audit-milestone.md +4 -4
  127. package/commands/{qgsd → nf}/check-todos.md +3 -3
  128. package/commands/{qgsd → nf}/cleanup.md +3 -3
  129. package/commands/{qgsd → nf}/close-formal-gaps.md +2 -2
  130. package/commands/{qgsd → nf}/complete-milestone.md +9 -9
  131. package/commands/{qgsd → nf}/debug.md +9 -9
  132. package/commands/{qgsd → nf}/discuss-phase.md +3 -3
  133. package/commands/{qgsd → nf}/execute-phase.md +15 -15
  134. package/commands/{qgsd → nf}/fix-tests.md +3 -3
  135. package/commands/{qgsd → nf}/formal-test-sync.md +1 -1
  136. package/commands/{qgsd → nf}/health.md +3 -3
  137. package/commands/{qgsd → nf}/help.md +3 -3
  138. package/commands/{qgsd → nf}/insert-phase.md +3 -3
  139. package/commands/nf/join-discord.md +18 -0
  140. package/commands/{qgsd → nf}/list-phase-assumptions.md +2 -2
  141. package/commands/{qgsd → nf}/map-codebase.md +7 -7
  142. package/commands/{qgsd → nf}/map-requirements.md +3 -3
  143. package/commands/{qgsd → nf}/mcp-restart.md +3 -3
  144. package/commands/{qgsd → nf}/mcp-set-model.md +8 -8
  145. package/commands/{qgsd → nf}/mcp-setup.md +63 -63
  146. package/commands/{qgsd → nf}/mcp-status.md +3 -3
  147. package/commands/{qgsd → nf}/mcp-update.md +7 -7
  148. package/commands/{qgsd → nf}/new-milestone.md +8 -8
  149. package/commands/{qgsd → nf}/new-project.md +8 -8
  150. package/commands/{qgsd → nf}/observe.md +49 -16
  151. package/commands/{qgsd → nf}/pause-work.md +3 -3
  152. package/commands/{qgsd → nf}/plan-milestone-gaps.md +5 -5
  153. package/commands/{qgsd → nf}/plan-phase.md +6 -6
  154. package/commands/{qgsd → nf}/polyrepo.md +2 -2
  155. package/commands/{qgsd → nf}/progress.md +3 -3
  156. package/commands/{qgsd → nf}/queue.md +2 -2
  157. package/commands/{qgsd → nf}/quick.md +8 -8
  158. package/commands/{qgsd → nf}/quorum-test.md +10 -10
  159. package/commands/{qgsd → nf}/quorum.md +40 -40
  160. package/commands/{qgsd → nf}/reapply-patches.md +2 -2
  161. package/commands/{qgsd → nf}/remove-phase.md +3 -3
  162. package/commands/{qgsd → nf}/research-phase.md +12 -12
  163. package/commands/{qgsd → nf}/resume-work.md +3 -3
  164. package/commands/nf/review-requirements.md +31 -0
  165. package/commands/{qgsd → nf}/set-profile.md +3 -3
  166. package/commands/{qgsd → nf}/settings.md +6 -6
  167. package/commands/{qgsd → nf}/solve.md +35 -35
  168. package/commands/{qgsd → nf}/sync-baselines.md +4 -4
  169. package/commands/{qgsd → nf}/triage.md +10 -10
  170. package/commands/{qgsd → nf}/update.md +3 -3
  171. package/commands/{qgsd → nf}/verify-work.md +5 -5
  172. package/hooks/dist/config-loader.js +188 -32
  173. package/hooks/dist/conformance-schema.cjs +2 -2
  174. package/hooks/dist/gsd-context-monitor.js +118 -13
  175. package/hooks/dist/{qgsd-check-update.js → nf-check-update.js} +5 -5
  176. package/hooks/dist/{qgsd-circuit-breaker.js → nf-circuit-breaker.js} +35 -24
  177. package/hooks/dist/nf-circuit-breaker.test.js +1002 -0
  178. package/hooks/dist/{qgsd-precompact.js → nf-precompact.js} +13 -13
  179. package/hooks/dist/nf-precompact.test.js +227 -0
  180. package/hooks/dist/{qgsd-prompt.js → nf-prompt.js} +110 -33
  181. package/hooks/dist/nf-prompt.test.js +698 -0
  182. package/hooks/dist/nf-session-start.js +185 -0
  183. package/hooks/dist/nf-session-start.test.js +354 -0
  184. package/hooks/dist/{qgsd-slot-correlator.js → nf-slot-correlator.js} +13 -5
  185. package/hooks/dist/nf-slot-correlator.test.js +85 -0
  186. package/hooks/dist/{qgsd-spec-regen.js → nf-spec-regen.js} +17 -8
  187. package/hooks/dist/nf-spec-regen.test.js +73 -0
  188. package/hooks/dist/{qgsd-statusline.js → nf-statusline.js} +12 -3
  189. package/hooks/dist/nf-statusline.test.js +157 -0
  190. package/hooks/dist/{qgsd-stop.js → nf-stop.js} +152 -18
  191. package/hooks/dist/nf-stop.test.js +1388 -0
  192. package/hooks/dist/{qgsd-token-collector.js → nf-token-collector.js} +12 -4
  193. package/hooks/dist/nf-token-collector.test.js +262 -0
  194. package/hooks/dist/unified-mcp-server.mjs +2 -2
  195. package/package.json +4 -4
  196. package/scripts/build-hooks.js +13 -6
  197. package/scripts/secret-audit.sh +1 -1
  198. package/scripts/verify-hooks-sync.cjs +90 -0
  199. package/templates/{qgsd.json → nf.json} +4 -4
  200. package/commands/qgsd/join-discord.md +0 -18
  201. package/hooks/dist/qgsd-session-start.js +0 -122
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: qgsd:observe
3
- description: Fetch issues and drifts from configured sources, render dual-table output, and write to debt ledger. Replaces /qgsd:triage.
2
+ name: nf:observe
3
+ description: Fetch issues and drifts from configured sources, render dual-table output, and write to debt ledger. Replaces /nf:triage.
4
4
  argument-hint: "[--source github|sentry|sentry-feedback|bash|internal] [--since 24h|7d] [--limit N]"
5
5
  allowed-tools:
6
6
  - Read
@@ -11,9 +11,9 @@ allowed-tools:
11
11
  ---
12
12
 
13
13
  <objective>
14
- Aggregate issues and drifts from all configured sources, deduplicate, render a prioritized dual-table output (Issues + Drifts), write observations to the debt ledger, and route the selected issue to the right QGSD workflow.
14
+ Aggregate issues and drifts from all configured sources, deduplicate, render a prioritized dual-table output (Issues + Drifts), write observations to the debt ledger, and route the selected issue to the right nForma workflow.
15
15
 
16
- This command is the project's unified "what's broken right now?" entry point. It replaces `/qgsd:triage` with debt-aware persistence and dual-table rendering.
16
+ This command is the project's unified "what's broken right now?" entry point. It replaces `/nf:triage` with debt-aware persistence and dual-table rendering.
17
17
  </objective>
18
18
 
19
19
  <process>
@@ -46,7 +46,7 @@ The loader automatically:
46
46
  Display:
47
47
  ```
48
48
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
49
- QGSD > OBSERVE: No sources configured
49
+ nForma > OBSERVE: No sources configured
50
50
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
51
51
  Create .planning/observe-sources.md to configure issue sources.
52
52
  ```
@@ -67,7 +67,7 @@ if (!$SOURCE_FILTER || $SOURCE_FILTER === 'internal') {
67
67
  // Critical: check for empty sources AFTER internal injection
68
68
  if (config.sources.length === 0) {
69
69
  // Display "no sources" message only if sources is empty AFTER internal source injection
70
- display("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n QGSD > OBSERVE: No sources configured\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nCreate .planning/observe-sources.md to configure issue sources.");
70
+ display("━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n nForma > OBSERVE: No sources configured\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\nCreate .planning/observe-sources.md to configure issue sources.");
71
71
  stop();
72
72
  }
73
73
  ```
@@ -80,19 +80,21 @@ Import handler functions and register them with the registry:
80
80
 
81
81
  ```javascript
82
82
  const { registerHandler } = require('./bin/observe-registry.cjs');
83
- const { handleGitHub, handleSentry, handleSentryFeedback, handleBash, handleInternal } = require('./bin/observe-handlers.cjs');
83
+ const { handleGitHub, handleSentry, handleSentryFeedback, handleBash, handleInternal, handleUpstream, handleDeps } = require('./bin/observe-handlers.cjs');
84
84
 
85
85
  registerHandler('github', handleGitHub);
86
86
  registerHandler('sentry', handleSentry);
87
87
  registerHandler('sentry-feedback', handleSentryFeedback);
88
88
  registerHandler('bash', handleBash);
89
89
  registerHandler('internal', handleInternal);
90
+ registerHandler('upstream', handleUpstream);
91
+ registerHandler('deps', handleDeps);
90
92
  ```
91
93
 
92
94
  Display dispatch header:
93
95
  ```
94
96
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
95
- QGSD > OBSERVE: Fetching from N source(s)...
97
+ nForma > OBSERVE: Fetching from N source(s)...
96
98
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
97
99
  ```
98
100
 
@@ -163,7 +165,7 @@ Display the output.
163
165
  If total issues = 0 and no drifts:
164
166
  ```
165
167
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
166
- QGSD > OBSERVE: All clear — no open issues found
168
+ nForma > OBSERVE: All clear — no open issues found
167
169
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
168
170
  Sources checked: <list>
169
171
  ```
@@ -224,25 +226,56 @@ Enter issue # to work on, "ack N" to acknowledge, "solve" for all internal issue
224
226
  **If user enters a number:**
225
227
  - Load the full issue details (title, URL, meta) for that index.
226
228
  - Determine routing:
227
- - If the issue has `source_type: 'internal'` and `_route` metadata: use the `_route` value as the suggested action (example: unfinished quick task suggests `/qgsd:quick "original-slug"`, debug session suggests `/qgsd:debug --resume`)
229
+ - If the issue has `source_type: 'internal'` and `_route` metadata: use the `_route` value as the suggested action (example: unfinished quick task suggests `/nf:quick "original-slug"`, debug session suggests `/nf:debug --resume`)
230
+ - If the issue has `issue_type: 'upstream'`: route to **upstream evaluation** (see below)
228
231
  - Otherwise, routing by severity:
229
- - `severity: error` or `severity: bug` → suggest `/qgsd:debug`
230
- - `severity: warning` or `severity: info` → suggest `/qgsd:quick`
232
+ - `severity: error` or `severity: bug` → suggest `/nf:debug`
233
+ - `severity: warning` or `severity: info` → suggest `/nf:quick`
231
234
  - Display:
232
235
  ```
233
236
  ◆ Issue: <title>
234
237
  URL: <url>
235
238
  Meta: <meta>
236
239
 
237
- Suggested action: /qgsd:debug "<title> — <meta>"
240
+ Suggested action: /nf:debug "<title> — <meta>"
238
241
  Run it? [Y/n]
239
242
  ```
240
243
  - If confirmed, invoke the suggested skill with the issue as context.
241
244
 
245
+ **Upstream evaluation routing (issue_type: 'upstream'):**
246
+
247
+ When the user selects an upstream item, do NOT blindly suggest porting it. Instead:
248
+
249
+ 1. Fetch the release notes or PR diff from the upstream URL (use `gh release view <tag> --repo <repo> --json body` or `gh pr view <number> --repo <repo> --json body,files`)
250
+ 2. Identify the areas of our codebase that overlap with the upstream change
251
+ 3. **Compare quality**: For each overlapping area, assess whether:
252
+ - Our implementation is already equivalent or better → `SKIP` (we diverged for good reason or already have it)
253
+ - The upstream change introduces something we lack → `CANDIDATE` (worth porting)
254
+ - The upstream change conflicts with our architecture → `INCOMPATIBLE` (their approach doesn't fit our patterns)
255
+ 4. Display the evaluation:
256
+ ```
257
+ ◆ Upstream: <title>
258
+ Source: <repo> <tag or #PR>
259
+ URL: <url>
260
+
261
+ Evaluation:
262
+ ┌─────────────────────────────────────────────────┐
263
+ │ Area │ Ours │ Theirs │ Verdict │
264
+ ├─────────────────────────────────────────────────┤
265
+ │ hook registration │ ✓ │ ✓ │ SKIP │
266
+ │ error retry logic │ basic │ exp-bo │ CANDIDATE │
267
+ │ config format │ YAML │ TOML │ INCOMPATIBLE│
268
+ └─────────────────────────────────────────────────┘
269
+
270
+ Candidates for porting: 1 of 3 areas
271
+ ```
272
+ 5. If there are CANDIDATE items, ask: `Port candidate changes? [Y/n]`
273
+ - If yes → suggest `/nf:quick "port <area> from <repo> <tag>"` for each candidate
274
+
242
275
  **If user enters "solve":**
243
276
  - Collect all issues with `source_type: 'internal'`
244
- - Display: `Routing all internal issues to /qgsd:solve...`
245
- - Invoke `/qgsd:solve` to address all internal consistency issues at once
277
+ - Display: `Routing all internal issues to /nf:solve...`
278
+ - Invoke `/nf:solve` to address all internal consistency issues at once
246
279
 
247
280
  **If user enters "ack N":**
248
281
  - Acknowledge the debt entry for issue #N (transition status from "open" to "acknowledged" via the debt state machine).
@@ -254,7 +287,7 @@ Enter issue # to work on, "ack N" to acknowledge, "solve" for all internal issue
254
287
 
255
288
  **If user presses Enter (blank):**
256
289
  ```
257
- Observe complete. Run /qgsd:observe again when ready.
290
+ Observe complete. Run /nf:observe again when ready.
258
291
  ```
259
292
 
260
293
  </process>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:pause-work
2
+ name: nf:pause-work
3
3
  description: Create context handoff when pausing work mid-phase
4
4
  allowed-tools:
5
5
  - Read
@@ -19,7 +19,7 @@ Routes to the pause-work workflow which handles:
19
19
  </objective>
20
20
 
21
21
  <execution_context>
22
- @~/.claude/qgsd/workflows/pause-work.md
22
+ @~/.claude/nf/workflows/pause-work.md
23
23
  </execution_context>
24
24
 
25
25
  <context>
@@ -27,7 +27,7 @@ State and phase progress are gathered in-workflow with targeted reads.
27
27
  </context>
28
28
 
29
29
  <process>
30
- **Follow the pause-work workflow** from `@~/.claude/qgsd/workflows/pause-work.md`.
30
+ **Follow the pause-work workflow** from `@~/.claude/nf/workflows/pause-work.md`.
31
31
 
32
32
  The workflow handles all logic including:
33
33
  1. Phase directory detection
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:plan-milestone-gaps
2
+ name: nf:plan-milestone-gaps
3
3
  description: Create phases to close all gaps identified by milestone audit
4
4
  allowed-tools:
5
5
  - Read
@@ -10,15 +10,15 @@ allowed-tools:
10
10
  - AskUserQuestion
11
11
  ---
12
12
  <objective>
13
- Create all phases necessary to close gaps identified by `/qgsd:audit-milestone`.
13
+ Create all phases necessary to close gaps identified by `/nf:audit-milestone`.
14
14
 
15
15
  Reads MILESTONE-AUDIT.md, groups gaps into logical phases, creates phase entries in ROADMAP.md, and offers to plan each phase.
16
16
 
17
- One command creates all fix phases — no manual `/qgsd:add-phase` per gap.
17
+ One command creates all fix phases — no manual `/nf:add-phase` per gap.
18
18
  </objective>
19
19
 
20
20
  <execution_context>
21
- @~/.claude/qgsd/workflows/plan-milestone-gaps.md
21
+ @~/.claude/nf/workflows/plan-milestone-gaps.md
22
22
  </execution_context>
23
23
 
24
24
  <context>
@@ -29,6 +29,6 @@ Original intent and current planning state are loaded on demand inside the workf
29
29
  </context>
30
30
 
31
31
  <process>
32
- Execute the plan-milestone-gaps workflow from @~/.claude/qgsd/workflows/plan-milestone-gaps.md end-to-end.
32
+ Execute the plan-milestone-gaps workflow from @~/.claude/nf/workflows/plan-milestone-gaps.md end-to-end.
33
33
  Preserve all workflow gates (audit loading, prioritization, phase grouping, user confirmation, roadmap updates).
34
34
  </process>
@@ -1,8 +1,8 @@
1
1
  ---
2
- name: qgsd:plan-phase
2
+ name: nf:plan-phase
3
3
  description: Create detailed phase plan (PLAN.md) with verification loop
4
4
  argument-hint: "[phase] [--auto] [--research] [--skip-research] [--gaps] [--skip-verify]"
5
- agent: qgsd-planner
5
+ agent: nf-planner
6
6
  allowed-tools:
7
7
  - Read
8
8
  - Write
@@ -18,12 +18,12 @@ Create executable phase prompts (PLAN.md files) for a roadmap phase with integra
18
18
 
19
19
  **Default flow:** Research (if needed) → Plan → Verify → Done
20
20
 
21
- **Orchestrator role:** Parse arguments, validate phase, research domain (unless skipped), spawn qgsd-planner, verify with qgsd-plan-checker, iterate until pass or max iterations, present results.
21
+ **Orchestrator role:** Parse arguments, validate phase, research domain (unless skipped), spawn nf-planner, verify with nf-plan-checker, iterate until pass or max iterations, present results.
22
22
  </objective>
23
23
 
24
24
  <execution_context>
25
- @~/.claude/qgsd/workflows/plan-phase.md
26
- @~/.claude/qgsd/references/ui-brand.md
25
+ @~/.claude/nf/workflows/plan-phase.md
26
+ @~/.claude/nf/references/ui-brand.md
27
27
  </execution_context>
28
28
 
29
29
  <context>
@@ -39,6 +39,6 @@ Normalize phase input in step 2 before any directory lookups.
39
39
  </context>
40
40
 
41
41
  <process>
42
- Execute the plan-phase workflow from @~/.claude/qgsd/workflows/plan-phase.md end-to-end.
42
+ Execute the plan-phase workflow from @~/.claude/nf/workflows/plan-phase.md end-to-end.
43
43
  Preserve all workflow gates (validation, research, planning, verification loop, routing).
44
44
  </process>
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: qgsd:polyrepo
3
- description: Manage polyrepo groups — register repos that form one product for cross-repo QGSD awareness
2
+ name: nf:polyrepo
3
+ description: Manage polyrepo groups — register repos that form one product for cross-repo nForma awareness
4
4
  argument-hint: create | add <group> <path> [role] | remove <group> <path> | list [group] | info
5
5
  allowed-tools:
6
6
  - Read
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:progress
2
+ name: nf:progress
3
3
  description: Check project progress, show context, and route to next action (execute or plan)
4
4
  allowed-tools:
5
5
  - Read
@@ -15,10 +15,10 @@ Provides situational awareness before continuing work.
15
15
  </objective>
16
16
 
17
17
  <execution_context>
18
- @~/.claude/qgsd/workflows/progress.md
18
+ @~/.claude/nf/workflows/progress.md
19
19
  </execution_context>
20
20
 
21
21
  <process>
22
- Execute the progress workflow from @~/.claude/qgsd/workflows/progress.md end-to-end.
22
+ Execute the progress workflow from @~/.claude/nf/workflows/progress.md end-to-end.
23
23
  Preserve all routing logic (Routes A through F) and edge case handling.
24
24
  </process>
@@ -1,7 +1,7 @@
1
1
  ---
2
- name: qgsd:queue
2
+ name: nf:queue
3
3
  description: Queue a skill or command to auto-invoke after the next /clear
4
- argument-hint: <command to queue, e.g. "/qgsd:quick --full">
4
+ argument-hint: <command to queue, e.g. "/nf:quick --full">
5
5
  allowed-tools:
6
6
  - Bash
7
7
  - Write
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:quick
2
+ name: nf:quick
3
3
  description: Execute a quick task with GSD guarantees (atomic commits, state tracking) but skip optional agents
4
4
  argument-hint: "[--full]"
5
5
  allowed-tools:
@@ -16,7 +16,7 @@ allowed-tools:
16
16
  Execute small, ad-hoc tasks with GSD guarantees (atomic commits, STATE.md tracking).
17
17
 
18
18
  Quick mode is the same system with a shorter path:
19
- - Spawns qgsd-planner (quick mode) + qgsd-executor(s)
19
+ - Spawns nf-planner (quick mode) + nf-executor(s)
20
20
  - Quick tasks live in `.planning/quick/` separate from planned phases
21
21
  - Updates STATE.md "Quick Tasks Completed" table (NOT ROADMAP.md)
22
22
 
@@ -34,7 +34,7 @@ Use when you want quality guarantees with formal correctness properties, without
34
34
  </objective>
35
35
 
36
36
  <execution_context>
37
- @~/.claude/qgsd/workflows/quick.md
37
+ @~/.claude/nf/workflows/quick.md
38
38
  </execution_context>
39
39
 
40
40
  <context>
@@ -44,7 +44,7 @@ Context files are resolved inside the workflow (`init quick`) and delegated via
44
44
  </context>
45
45
 
46
46
  <process>
47
- Execute the quick workflow from @~/.claude/qgsd/workflows/quick.md end-to-end.
47
+ Execute the quick workflow from @~/.claude/nf/workflows/quick.md end-to-end.
48
48
  Preserve all workflow gates (validation, task description, planning, execution, state updates, commits).
49
49
  </process>
50
50
 
@@ -60,7 +60,7 @@ When Step 6.5 reaches `gaps_found` status, do NOT pause for user input and do NO
60
60
 
61
61
  ```
62
62
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
63
- QGSD ► GAPS FOUND — AUTO-FIX
63
+ nForma ► GAPS FOUND — AUTO-FIX
64
64
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
65
65
 
66
66
  ◆ Verification found gaps. Spawning fix executor...
@@ -88,7 +88,7 @@ Fix gaps identified in verification.
88
88
  - Return the fix commit hash in your response (format: 'Fix Commit: {hash}')
89
89
  </constraints>
90
90
  ",
91
- subagent_type="qgsd-executor",
91
+ subagent_type="nf-executor",
92
92
  model="{executor_model}",
93
93
  description="Fix gaps: ${DESCRIPTION}"
94
94
  )
@@ -96,7 +96,7 @@ Fix gaps identified in verification.
96
96
 
97
97
  **4. After fix executor returns, run quorum-test to verify gaps are closed:**
98
98
 
99
- Determine test scope from VERIFICATION.md artifacts. If test files exist (`*.test.js`, `*.test.ts`, etc.), call `/qgsd:quorum-test` with those files. If no test files are present (non-testable gaps), skip quorum-test and proceed directly to step 5 treating the result as PASS.
99
+ Determine test scope from VERIFICATION.md artifacts. If test files exist (`*.test.js`, `*.test.ts`, etc.), call `/nf:quorum-test` with those files. If no test files are present (non-testable gaps), skip quorum-test and proceed directly to step 5 treating the result as PASS.
100
100
 
101
101
  Evaluate quorum-test consensus:
102
102
 
@@ -120,7 +120,7 @@ Set `$VERIFICATION_STATUS` based on human response ("verified" → "Verified", "
120
120
 
121
121
  ```
122
122
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
123
- QGSD ► AUTO-FIX EXHAUSTED
123
+ nForma ► AUTO-FIX EXHAUSTED
124
124
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
125
125
 
126
126
  Max fix iterations reached. Quorum still reports gaps.
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:quorum-test
2
+ name: nf:quorum-test
3
3
  description: Run the test suite and submit the full execution bundle to quorum workers for independent quality review. Parallel workers evaluate whether tests genuinely pass and whether assertions are meaningful.
4
4
  argument-hint: "[path/to/test.file.js]"
5
5
  allowed-tools:
@@ -13,7 +13,7 @@ allowed-tools:
13
13
  <objective>
14
14
  Run the project test suite, assemble a full execution bundle, and dispatch parallel quorum workers to independently evaluate whether the tests genuinely pass and whether they are real tests.
15
15
 
16
- This command extends QGSD quorum from *planning* (consensus on direction) to *verification* (consensus on test quality).
16
+ This command extends nForma quorum from *planning* (consensus on direction) to *verification* (consensus on test quality).
17
17
  </objective>
18
18
 
19
19
  <process>
@@ -70,7 +70,7 @@ If `$TEST_FILES` is empty, display:
70
70
 
71
71
  ```
72
72
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
73
- QGSD ► QUORUM-TEST: No automated tests found
73
+ nForma ► QUORUM-TEST: No automated tests found
74
74
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
75
75
 
76
76
  Searched for: <$TEST_PATTERNS>
@@ -93,7 +93,7 @@ If any file is missing, display:
93
93
 
94
94
  ```
95
95
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
96
- QGSD ► QUORUM-TEST: BLOCK (missing test files)
96
+ nForma ► QUORUM-TEST: BLOCK (missing test files)
97
97
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
98
98
 
99
99
  Missing: <list of missing files>
@@ -128,7 +128,7 @@ Append `echo "EXIT:$?"` to capture exit code. Store full output as `$TEST_OUTPUT
128
128
  Read the full source of every file in `$TEST_FILES`. Store as `$TEST_SOURCES` — a combined block with filename headers:
129
129
 
130
130
  ```
131
- === hooks/qgsd-stop.test.js ===
131
+ === hooks/nf-stop.test.js ===
132
132
  <full source>
133
133
 
134
134
  === hooks/config-loader.test.js ===
@@ -147,7 +147,7 @@ If exit code is non-zero, stop immediately and display:
147
147
 
148
148
  ```
149
149
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
150
- QGSD ► QUORUM-TEST: BLOCK (test infrastructure failure)
150
+ nForma ► QUORUM-TEST: BLOCK (test infrastructure failure)
151
151
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
152
152
 
153
153
  Tests did not run cleanly (exit code: N).
@@ -179,7 +179,7 @@ $TEST_SOURCES
179
179
  Display:
180
180
  ```
181
181
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
182
- QGSD ► QUORUM-TEST: Dispatching workers...
182
+ nForma ► QUORUM-TEST: Dispatching workers...
183
183
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
184
184
  ```
185
185
 
@@ -187,7 +187,7 @@ Dispatch all four workers as parallel Task calls (Task subagents are isolated su
187
187
 
188
188
  Worker prompt template for each:
189
189
  ```
190
- You are a skeptical test reviewer for the QGSD project.
190
+ You are a skeptical test reviewer for the nForma project.
191
191
 
192
192
  <bundle>
193
193
  $BUNDLE
@@ -215,7 +215,7 @@ Dispatch (each call in a single parallel message — Task subagents are isolated
215
215
  - `Task(subagent_type="general-purpose", prompt="Call mcp__copilot-1__ask with the following prompt. Pass the full literal text of the bundle inline — do not summarize or truncate: [full worker prompt with $BUNDLE inlined verbatim]")`
216
216
  - `Task(subagent_type="general-purpose", prompt="Call mcp__codex-cli-1__review with the following prompt. Pass the full literal text of the bundle inline — do not summarize or truncate: [full worker prompt with $BUNDLE inlined verbatim]")`
217
217
 
218
- Note: `agents/qgsd-quorum-test-worker.md` defines this same role and output format and can be invoked directly with a bundle as `$ARGUMENTS`. The parallel Task dispatch above is used when targeting specific external models (Gemini, OpenCode, Copilot, Codex) rather than a single agent.
218
+ Note: `agents/nf-quorum-test-worker.md` defines this same role and output format and can be invoked directly with a bundle as `$ARGUMENTS`. The parallel Task dispatch above is used when targeting specific external models (Gemini, OpenCode, Copilot, Codex) rather than a single agent.
219
219
 
220
220
  **Collect verdicts and render table**
221
221
 
@@ -235,7 +235,7 @@ Display:
235
235
 
236
236
  ```
237
237
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
238
- QGSD ► QUORUM-TEST RESULTS
238
+ nForma ► QUORUM-TEST RESULTS
239
239
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
240
240
 
241
241
  ┌──────────────┬──────────────────┬─────────────────────────────────────┐