@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,5 +1,5 @@
1
1
  ---
2
- name: qgsd:mcp-setup
2
+ name: nf:mcp-setup
3
3
  description: Configure quorum agents — first-run linear onboarding for new installs, live-status agent menu for re-runs
4
4
  allowed-tools:
5
5
  - Bash
@@ -7,7 +7,7 @@ allowed-tools:
7
7
  ---
8
8
 
9
9
  <objective>
10
- Configure QGSD quorum agents in `~/.claude.json`. Detects whether any MCP servers are configured and routes to the appropriate flow:
10
+ Configure nForma quorum agents in `~/.claude.json`. Detects whether any MCP servers are configured and routes to the appropriate flow:
11
11
  - **First-run** (zero configured entries): linear onboarding — select agent templates, collect API keys via keytar, write batch changes with backup, restart agents
12
12
  - **Re-run** (existing entries): live-status agent roster menu — view model/provider/key status, select agent, choose action (set key / swap provider / remove)
13
13
  </objective>
@@ -53,7 +53,7 @@ Display the welcome banner:
53
53
 
54
54
  ```
55
55
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
56
- QGSD ► MCP SETUP — FIRST RUN
56
+ nForma ► MCP SETUP — FIRST RUN
57
57
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
58
58
 
59
59
  No quorum agents configured. Let's set up your first agent.
@@ -83,12 +83,12 @@ Use AskUserQuestion:
83
83
  - "3 — claude-3 (Together.xyz, Qwen3-Coder-480B)"
84
84
  - "4 — claude-5 (Together.xyz, Llama-4-M)"
85
85
  - "5 — claude-4 (Fireworks, kimi)"
86
- - "Skip — configure later via /qgsd:mcp-setup"
86
+ - "Skip — configure later via /nf:mcp-setup"
87
87
 
88
88
  If "Skip" is chosen, display:
89
89
 
90
90
  ```
91
- ⚠ No agents configured. Run /qgsd:mcp-setup when ready.
91
+ ⚠ No agents configured. Run /nf:mcp-setup when ready.
92
92
  ```
93
93
 
94
94
  Stop.
@@ -116,7 +116,7 @@ Store the key using this Bash command (substitute AGENT_KEY and API_KEY):
116
116
 
117
117
  ```bash
118
118
  KEY_RESULT=$(node -e "
119
- const { set, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
119
+ const { set, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
120
120
  const agentKey = process.env.AGENT_KEY;
121
121
  const apiKey = process.env.API_KEY;
122
122
  (async () => {
@@ -153,7 +153,7 @@ mkdir -p ~/.claude/debug
153
153
  node -e "
154
154
  const fs = require('fs');
155
155
  const ts = new Date().toISOString();
156
- const msg = ts + ' QGSD mcp-setup: keytar unavailable for ' + process.env.AGENT_KEY + ' — API key stored unencrypted in env block\n';
156
+ const msg = ts + ' nForma mcp-setup: keytar unavailable for ' + process.env.AGENT_KEY + ' — API key stored unencrypted in env block\n';
157
157
  fs.appendFileSync(require('os').homedir() + '/.claude/debug/mcp-setup-audit.log', msg);
158
158
  " AGENT_KEY="{agent-name}"
159
159
  ```
@@ -177,7 +177,7 @@ If "Finish setup": continue to Step 3.
177
177
  If pending batch is empty (all skipped):
178
178
 
179
179
  ```
180
- ⚠ No agents configured. Run /qgsd:mcp-setup when ready.
180
+ ⚠ No agents configured. Run /nf:mcp-setup when ready.
181
181
  ```
182
182
 
183
183
  Stop.
@@ -186,7 +186,7 @@ Display pending summary:
186
186
 
187
187
  ```
188
188
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
189
- QGSD ► REVIEW PENDING CHANGES
189
+ nForma ► REVIEW PENDING CHANGES
190
190
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
191
191
 
192
192
  Agents to add to ~/.claude.json:
@@ -196,7 +196,7 @@ Agents to add to ~/.claude.json:
196
196
  [repeat for each pending agent]
197
197
 
198
198
  Skipped:
199
- ○ {agent-name} — run /qgsd:mcp-setup to configure later
199
+ ○ {agent-name} — run /nf:mcp-setup to configure later
200
200
  ```
201
201
 
202
202
  Use AskUserQuestion:
@@ -298,7 +298,7 @@ process.stdout.write(JSON.stringify({ written: true, count: pendingAgents.length
298
298
 
299
299
  ```bash
300
300
  node -e "
301
- const { syncToClaudeJson, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
301
+ const { syncToClaudeJson, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
302
302
  syncToClaudeJson(SERVICE)
303
303
  .then(() => process.stdout.write('synced\n'))
304
304
  .catch(e => process.stderr.write('sync warning: ' + e.message + '\n'));
@@ -309,20 +309,20 @@ syncToClaudeJson(SERVICE)
309
309
 
310
310
  For each agent in the pending batch:
311
311
 
312
- Invoke `/qgsd:mcp-restart {agent-name}`.
312
+ Invoke `/nf:mcp-restart {agent-name}`.
313
313
 
314
314
  If restart fails or times out, leave config in written state and display:
315
315
 
316
316
  ```
317
317
  ⚠ {agent-name}: restart failed. Config was written — agent will reload on next Claude Code restart.
318
- Manual retry: /qgsd:mcp-restart {agent-name}
318
+ Manual retry: /nf:mcp-restart {agent-name}
319
319
  ```
320
320
 
321
321
  ### Step 3f: Closing summary
322
322
 
323
323
  ```
324
324
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
325
- QGSD ► SETUP COMPLETE ✓
325
+ nForma ► SETUP COMPLETE ✓
326
326
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
327
327
 
328
328
  Changes applied and agents restarted.
@@ -330,10 +330,10 @@ Changes applied and agents restarted.
330
330
  ✓ {agent-name} — restarted
331
331
  [repeat for each successfully restarted agent]
332
332
 
333
- ○ {agent-name} — skipped (run /qgsd:mcp-setup to configure later)
333
+ ○ {agent-name} — skipped (run /nf:mcp-setup to configure later)
334
334
  [repeat for each skipped agent]
335
335
 
336
- Run /qgsd:mcp-status to verify agent health.
336
+ Run /nf:mcp-status to verify agent health.
337
337
  ```
338
338
 
339
339
  ---
@@ -364,7 +364,7 @@ const os = require('os');
364
364
 
365
365
  let keyStatus = 'no key';
366
366
  try {
367
- const { get, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
367
+ const { get, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
368
368
  const keyName = 'ANTHROPIC_API_KEY_' + name.toUpperCase().replace(/-/g,'_');
369
369
  const stored = await get(SERVICE, keyName);
370
370
  keyStatus = stored ? 'key stored' : (env.ANTHROPIC_API_KEY ? 'key in env' : 'no key');
@@ -386,7 +386,7 @@ Display re-run banner:
386
386
 
387
387
  ```
388
388
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
389
- QGSD ► MCP SETUP — AGENT ROSTER
389
+ nForma ► MCP SETUP — AGENT ROSTER
390
390
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
391
391
  ```
392
392
 
@@ -493,7 +493,7 @@ Store the key using bin/secrets.cjs (agent name and key passed via env vars —
493
493
 
494
494
  ```bash
495
495
  KEY_RESULT=$(node -e "
496
- const { set, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
496
+ const { set, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
497
497
  const agentKey = process.env.AGENT_KEY;
498
498
  const apiKey = process.env.API_KEY;
499
499
  (async () => {
@@ -527,7 +527,7 @@ Parse KEY_RESULT:
527
527
  node -e "
528
528
  const fs = require('fs');
529
529
  const ts = new Date().toISOString();
530
- const msg = ts + ' QGSD mcp-setup: keytar unavailable for ' + process.env.AGENT_KEY + ' — API key stored unencrypted in env block\n';
530
+ const msg = ts + ' nForma mcp-setup: keytar unavailable for ' + process.env.AGENT_KEY + ' — API key stored unencrypted in env block\n';
531
531
  fs.appendFileSync(require('os').homedir() + '/.claude/debug/mcp-setup-audit.log', msg);
532
532
  " AGENT_KEY="{agent-name}"
533
533
  ```
@@ -538,7 +538,7 @@ Show pending summary:
538
538
 
539
539
  ```
540
540
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
541
- QGSD ► REVIEW PENDING CHANGES
541
+ nForma ► REVIEW PENDING CHANGES
542
542
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
543
543
 
544
544
  ◆ {agent-name} → {provider-name} ({base-url})
@@ -626,12 +626,12 @@ process.stdout.write(JSON.stringify({ written: true }) + '\n');
626
626
  4. Sync keytar secrets to ~/.claude.json:
627
627
  ```bash
628
628
  node -e "
629
- const { syncToClaudeJson, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
629
+ const { syncToClaudeJson, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
630
630
  syncToClaudeJson(SERVICE).then(() => process.stdout.write('synced\n')).catch(e => process.stderr.write(e.message + '\n'));
631
631
  "
632
632
  ```
633
633
 
634
- 5. Invoke `/qgsd:mcp-restart {agent-name}` to start the new agent process.
634
+ 5. Invoke `/nf:mcp-restart {agent-name}` to start the new agent process.
635
635
 
636
636
  **Step D — Identity ping (AGENT-03)**
637
637
 
@@ -648,7 +648,7 @@ If identity responds:
648
648
  Version: {identity.version}
649
649
  Model: {identity.model}
650
650
 
651
- Run /qgsd:mcp-status to see full agent roster.
651
+ Run /nf:mcp-status to see full agent roster.
652
652
  ```
653
653
 
654
654
  If identity times out or errors:
@@ -657,7 +657,7 @@ If identity times out or errors:
657
657
 
658
658
  ◆ {agent-name} — added, restarted (identity ping timed out — agent may need a moment to start)
659
659
 
660
- Run /qgsd:mcp-status to verify agent health.
660
+ Run /nf:mcp-status to verify agent health.
661
661
  ```
662
662
 
663
663
  **Return path:** If this add-slot flow was entered from the Composition Screen (via "Add new slot"), return to Composition Screen after identity ping. Otherwise, return to roster display (re-read roster to show new agent).
@@ -672,7 +672,7 @@ Show a confirmation screen:
672
672
 
673
673
  ```
674
674
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
675
- QGSD ► REVIEW PENDING CHANGES
675
+ nForma ► REVIEW PENDING CHANGES
676
676
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
677
677
 
678
678
  ◆ {new-slot-name} → copied from {source-slot-name}
@@ -718,18 +718,18 @@ process.stdout.write(JSON.stringify({ written: true, newSlot, sourceSlot: srcSlo
718
718
 
719
719
  If `written: false`: display error and return to roster.
720
720
 
721
- 3. Append new slot to `quorum_active` in `~/.claude/qgsd.json`:
721
+ 3. Append new slot to `quorum_active` in `~/.claude/nf.json`:
722
722
  ```bash
723
723
  node -e "
724
724
  const fs = require('fs'), os = require('os');
725
- const qgsdPath = os.homedir() + '/.claude/qgsd.json';
725
+ const nfPath = os.homedir() + '/.claude/nf.json';
726
726
  let cfg = {};
727
- try { cfg = JSON.parse(fs.readFileSync(qgsdPath, 'utf8')); } catch(e) {}
727
+ try { cfg = JSON.parse(fs.readFileSync(nfPath, 'utf8')); } catch(e) {}
728
728
  const active = Array.isArray(cfg.quorum_active) ? cfg.quorum_active : [];
729
729
  const newSlot = process.env.NEW_SLOT;
730
730
  if (!active.includes(newSlot)) {
731
731
  cfg.quorum_active = [...active, newSlot];
732
- fs.writeFileSync(qgsdPath, JSON.stringify(cfg, null, 2) + '\n');
732
+ fs.writeFileSync(nfPath, JSON.stringify(cfg, null, 2) + '\n');
733
733
  process.stdout.write(JSON.stringify({ added: true, slot: newSlot }) + '\n');
734
734
  } else {
735
735
  process.stdout.write(JSON.stringify({ added: false, slot: newSlot, reason: 'already present' }) + '\n');
@@ -737,7 +737,7 @@ if (!active.includes(newSlot)) {
737
737
  " NEW_SLOT="{new-slot-name}"
738
738
  ```
739
739
 
740
- 4. Invoke `/qgsd:mcp-restart {new-slot-name}` to start the new agent process.
740
+ 4. Invoke `/nf:mcp-restart {new-slot-name}` to start the new agent process.
741
741
 
742
742
  **Step D — Identity ping** (same as claude-mcp-server path):
743
743
 
@@ -754,7 +754,7 @@ If identity responds:
754
754
  Version: {identity.version}
755
755
  Model: {identity.model}
756
756
 
757
- Run /qgsd:mcp-status to see full agent roster.
757
+ Run /nf:mcp-status to see full agent roster.
758
758
  ```
759
759
 
760
760
  If identity times out or errors:
@@ -763,7 +763,7 @@ If identity times out or errors:
763
763
 
764
764
  ◆ {new-slot-name} — added, restarted (identity ping timed out — agent may need a moment to start)
765
765
 
766
- Run /qgsd:mcp-status to verify agent health.
766
+ Run /nf:mcp-status to verify agent health.
767
767
  ```
768
768
 
769
769
  **Return path:** If this add-slot flow was entered from the Composition Screen (via "Add new slot"), return to Composition Screen after identity ping. Otherwise, return to roster display (re-read roster to show new agent).
@@ -790,14 +790,14 @@ try {
790
790
  slots = Object.keys(cj.mcpServers || {});
791
791
  } catch(e) {}
792
792
  try {
793
- const qgsd = JSON.parse(fs.readFileSync(os.homedir() + '/.claude/qgsd.json', 'utf8'));
794
- active = Array.isArray(qgsd.quorum_active) ? qgsd.quorum_active : [];
793
+ const nfCfg = JSON.parse(fs.readFileSync(os.homedir() + '/.claude/nf.json', 'utf8'));
794
+ active = Array.isArray(nf.quorum_active) ? nf.quorum_active : [];
795
795
  } catch(e) {}
796
796
  process.stdout.write(JSON.stringify({ slots, active }) + '\n');
797
797
  ")
798
798
  ```
799
799
 
800
- Parse `COMPOSITION_DATA` for `slots` (array of all slot names from `~/.claude.json`) and `active` (current `quorum_active` array from `~/.claude/qgsd.json`).
800
+ Parse `COMPOSITION_DATA` for `slots` (array of all slot names from `~/.claude.json`) and `active` (current `quorum_active` array from `~/.claude/nf.json`).
801
801
 
802
802
  **Step CS-2: Display composition table**
803
803
 
@@ -805,7 +805,7 @@ Display banner:
805
805
 
806
806
  ```
807
807
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
808
- QGSD ► QUORUM COMPOSITION
808
+ nForma ► QUORUM COMPOSITION
809
809
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
810
810
  ```
811
811
 
@@ -838,7 +838,7 @@ Use AskUserQuestion:
838
838
  - question: "Enter slot number to toggle ON/OFF, or choose an option:"
839
839
  - options:
840
840
  - "1 — {slot-name} [{current PENDING_ACTIVE status}]" (one per slot — show ● ON or ○ OFF based on current PENDING_ACTIVE state)
841
- - "Apply — save changes to qgsd.json"
841
+ - "Apply — save changes to nf.json"
842
842
  - "Add new slot — add a slot to ~/.claude.json and quorum_active"
843
843
  - "Cancel — discard changes"
844
844
 
@@ -857,11 +857,11 @@ Re-display the AskUserQuestion with updated statuses after each toggle.
857
857
  ```bash
858
858
  node -e "
859
859
  const fs = require('fs'), os = require('os');
860
- const qgsdPath = os.homedir() + '/.claude/qgsd.json';
860
+ const nfPath = os.homedir() + '/.claude/nf.json';
861
861
  let cfg = {};
862
- try { cfg = JSON.parse(fs.readFileSync(qgsdPath, 'utf8')); } catch(e) {}
862
+ try { cfg = JSON.parse(fs.readFileSync(nfPath, 'utf8')); } catch(e) {}
863
863
  cfg.quorum_active = JSON.parse(process.env.PENDING_ACTIVE);
864
- fs.writeFileSync(qgsdPath, JSON.stringify(cfg, null, 2) + '\n');
864
+ fs.writeFileSync(nfPath, JSON.stringify(cfg, null, 2) + '\n');
865
865
  process.stdout.write(JSON.stringify({ written: true, count: cfg.quorum_active.length }) + '\n');
866
866
  " PENDING_ACTIVE="{JSON.stringify(PENDING_ACTIVE)}"
867
867
  ```
@@ -898,7 +898,7 @@ Display agent detail banner:
898
898
 
899
899
  ```
900
900
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
901
- QGSD ► {agent-name}
901
+ nForma ► {agent-name}
902
902
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
903
903
 
904
904
  Model: {model}
@@ -923,7 +923,7 @@ Run an inline node script to check whether a key is already stored in keytar for
923
923
 
924
924
  ```bash
925
925
  KEY_CHECK_RESULT=$(node -e "
926
- const { get, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
926
+ const { get, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
927
927
  (async () => {
928
928
  try {
929
929
  const agentName = process.env.AGENT_NAME;
@@ -985,7 +985,7 @@ Run inline node script using `set()` from `bin/secrets.cjs`. Pass key via enviro
985
985
 
986
986
  ```bash
987
987
  KEY_STORE_RESULT=$(node -e "
988
- const { set, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
988
+ const { set, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
989
989
  (async () => {
990
990
  try {
991
991
  const agentName = process.env.AGENT_NAME;
@@ -1019,7 +1019,7 @@ Parse KEY_STORE_RESULT:
1019
1019
  node -e "
1020
1020
  const fs = require('fs');
1021
1021
  const ts = new Date().toISOString();
1022
- const msg = ts + ' QGSD mcp-setup: keytar unavailable for ' + process.env.AGENT_KEY + ' — API key stored unencrypted in env block\n';
1022
+ const msg = ts + ' nForma mcp-setup: keytar unavailable for ' + process.env.AGENT_KEY + ' — API key stored unencrypted in env block\n';
1023
1023
  fs.appendFileSync(require('os').homedir() + '/.claude/debug/mcp-setup-audit.log', msg);
1024
1024
  " AGENT_KEY="{agent-name}"
1025
1025
  ```
@@ -1030,7 +1030,7 @@ Show pending summary using the existing "Confirm + Apply + Restart Flow" pattern
1030
1030
 
1031
1031
  ```
1032
1032
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1033
- QGSD ► REVIEW PENDING CHANGES
1033
+ nForma ► REVIEW PENDING CHANGES
1034
1034
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1035
1035
 
1036
1036
  ◆ {agent-name} — API key updated (stored in system keychain)
@@ -1075,15 +1075,15 @@ process.stdout.write(JSON.stringify({ written: true }) + '\n');
1075
1075
  3. Sync all keytar secrets back to ~/.claude.json:
1076
1076
  ```bash
1077
1077
  node -e "
1078
- const { syncToClaudeJson, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
1078
+ const { syncToClaudeJson, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
1079
1079
  syncToClaudeJson(SERVICE).then(() => process.stdout.write('synced\n')).catch(e => process.stderr.write(e.message + '\n'));
1080
1080
  "
1081
1081
  ```
1082
1082
 
1083
- 4. Invoke `/qgsd:mcp-restart {agent-name}` (sequential). If restart fails, leave config written and display:
1083
+ 4. Invoke `/nf:mcp-restart {agent-name}` (sequential). If restart fails, leave config written and display:
1084
1084
  ```
1085
1085
  ⚠ {agent-name}: restart failed. Config applied — reload on next Claude Code restart.
1086
- Manual retry: /qgsd:mcp-restart {agent-name}
1086
+ Manual retry: /nf:mcp-restart {agent-name}
1087
1087
  ```
1088
1088
 
1089
1089
  5. Display:
@@ -1092,7 +1092,7 @@ syncToClaudeJson(SERVICE).then(() => process.stdout.write('synced\n')).catch(e =
1092
1092
 
1093
1093
  ✓ {agent-name} — key updated, restarted
1094
1094
 
1095
- Run /qgsd:mcp-status to verify agent health.
1095
+ Run /nf:mcp-status to verify agent health.
1096
1096
  ```
1097
1097
 
1098
1098
  Return to Agent Sub-Menu (user can make further changes or go Back).
@@ -1159,7 +1159,7 @@ Show pending summary:
1159
1159
 
1160
1160
  ```
1161
1161
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1162
- QGSD ► REVIEW PENDING CHANGES
1162
+ nForma ► REVIEW PENDING CHANGES
1163
1163
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1164
1164
 
1165
1165
  ◆ {agent-name} — provider changed to {NEW_PROVIDER_NAME} ({NEW_URL})
@@ -1204,15 +1204,15 @@ process.stdout.write(JSON.stringify({ written: true }) + '\n');
1204
1204
  3. Sync keytar secrets to ~/.claude.json:
1205
1205
  ```bash
1206
1206
  node -e "
1207
- const { syncToClaudeJson, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
1207
+ const { syncToClaudeJson, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
1208
1208
  syncToClaudeJson(SERVICE).then(() => process.stdout.write('synced\n')).catch(e => process.stderr.write(e.message + '\n'));
1209
1209
  "
1210
1210
  ```
1211
1211
 
1212
- 4. Invoke `/qgsd:mcp-restart {agent-name}` (sequential). If restart fails, leave config written and display:
1212
+ 4. Invoke `/nf:mcp-restart {agent-name}` (sequential). If restart fails, leave config written and display:
1213
1213
  ```
1214
1214
  ⚠ {agent-name}: restart failed. Config applied — reload on next Claude Code restart.
1215
- Manual retry: /qgsd:mcp-restart {agent-name}
1215
+ Manual retry: /nf:mcp-restart {agent-name}
1216
1216
  ```
1217
1217
 
1218
1218
  5. Display:
@@ -1221,7 +1221,7 @@ syncToClaudeJson(SERVICE).then(() => process.stdout.write('synced\n')).catch(e =
1221
1221
 
1222
1222
  ✓ {agent-name} — provider changed to {NEW_PROVIDER_NAME}, restarted
1223
1223
 
1224
- Run /qgsd:mcp-status to verify agent health.
1224
+ Run /nf:mcp-status to verify agent health.
1225
1225
  ```
1226
1226
 
1227
1227
  Return to Agent Sub-Menu (user can make further changes or go Back).
@@ -1234,7 +1234,7 @@ Display removal warning:
1234
1234
 
1235
1235
  ```
1236
1236
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1237
- QGSD ► REMOVE AGENT
1237
+ nForma ► REMOVE AGENT
1238
1238
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1239
1239
 
1240
1240
  ⚠ This will permanently remove {agent-name} from
@@ -1285,7 +1285,7 @@ process.stdout.write(JSON.stringify({ removed: true, agent: agentName }) + '\n')
1285
1285
  ✓ {agent-name} — removed from ~/.claude.json
1286
1286
  The agent will be deregistered on next Claude Code restart.
1287
1287
 
1288
- Run /qgsd:mcp-status to verify the updated agent roster.
1288
+ Run /nf:mcp-status to verify the updated agent roster.
1289
1289
  ```
1290
1290
 
1291
1291
  Return to roster display (re-read roster — removed agent no longer appears).
@@ -1302,7 +1302,7 @@ Display pending summary:
1302
1302
 
1303
1303
  ```
1304
1304
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1305
- QGSD ► REVIEW PENDING CHANGES
1305
+ nForma ► REVIEW PENDING CHANGES
1306
1306
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1307
1307
 
1308
1308
  ◆ {agent-name} — {description of change}
@@ -1329,12 +1329,12 @@ cp ~/.claude.json ~/.claude.json.backup-$(date +%Y-%m-%d-%H%M%S) 2>/dev/null ||
1329
1329
  3. Sync keytar secrets:
1330
1330
  ```bash
1331
1331
  node -e "
1332
- const { syncToClaudeJson, SERVICE } = require('~/.claude/qgsd-bin/secrets.cjs');
1332
+ const { syncToClaudeJson, SERVICE } = require('~/.claude/nf-bin/secrets.cjs');
1333
1333
  syncToClaudeJson(SERVICE).then(() => process.stdout.write('synced\n')).catch(e => process.stderr.write(e.message + '\n'));
1334
1334
  "
1335
1335
  ```
1336
1336
 
1337
- 4. For each affected agent (sequential, one at a time): invoke `/qgsd:mcp-restart {agent-name}`.
1337
+ 4. For each affected agent (sequential, one at a time): invoke `/nf:mcp-restart {agent-name}`.
1338
1338
 
1339
1339
  5. Display:
1340
1340
  ```
@@ -1342,13 +1342,13 @@ syncToClaudeJson(SERVICE).then(() => process.stdout.write('synced\n')).catch(e =
1342
1342
 
1343
1343
  ✓ {agent-name} — restarted
1344
1344
 
1345
- Run /qgsd:mcp-status to verify agent health.
1345
+ Run /nf:mcp-status to verify agent health.
1346
1346
  ```
1347
1347
 
1348
1348
  If a restart fails, leave config written and display:
1349
1349
  ```
1350
1350
  ⚠ {agent-name}: restart failed. Config applied — reload on next Claude Code restart.
1351
- Manual retry: /qgsd:mcp-restart {agent-name}
1351
+ Manual retry: /nf:mcp-restart {agent-name}
1352
1352
  ```
1353
1353
 
1354
1354
  </process>
@@ -1366,6 +1366,6 @@ If a restart fails, leave config written and display:
1366
1366
  - Keytar failure: warning + Linux hint + confirmation before env-block fallback + audit log
1367
1367
  - Key value never appears in displayed text, log output, or shell history (passed via env var only)
1368
1368
  - Edit Quorum Composition flow (WIZ-08): re-run menu option "Edit Quorum Composition" → routes to Composition Screen
1369
- - Composition toggle flow (WIZ-09): slot list with ● ON / ○ OFF indicators → toggle updates PENDING_ACTIVE → apply writes quorum_active to ~/.claude/qgsd.json → no restart required
1369
+ - Composition toggle flow (WIZ-09): slot list with ● ON / ○ OFF indicators → toggle updates PENDING_ACTIVE → apply writes quorum_active to ~/.claude/nf.json → no restart required
1370
1370
  - Add slot from composition flow (WIZ-10): "Add new slot" → Step A/B/B-native → identity ping → return to Composition Screen showing new slot ● ON
1371
1371
  </success_criteria>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:mcp-status
2
+ name: nf:mcp-status
3
3
  description: Show status of all connected quorum agents — provider, model, health, and latency
4
4
  allowed-tools:
5
5
  - Read
@@ -116,7 +116,7 @@ Display as `sub` or `api` in the Auth column.
116
116
  Print:
117
117
  ```
118
118
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
119
- QGSD ► MCP STATUS
119
+ nForma ► MCP STATUS
120
120
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
121
121
 
122
122
  Querying 4 CLI agents + 6 HTTP providers...
@@ -244,7 +244,7 @@ Scoreboard: 156 rounds recorded | Last update: 2026-02-23T14:23:52.301Z
244
244
 
245
245
  If scoreboard file was absent, show instead:
246
246
  ```
247
- Scoreboard: no data yet (run /qgsd:quorum first to populate)
247
+ Scoreboard: no data yet (run /nf:quorum first to populate)
248
248
  ```
249
249
 
250
250
  Health legend:
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:mcp-update
2
+ name: nf:mcp-update
3
3
  description: Update a quorum agent to its latest version — detects install method from ~/.claude.json and runs the correct update command
4
4
  argument-hint: "<agent|all>"
5
5
  allowed-tools:
@@ -7,7 +7,7 @@ allowed-tools:
7
7
  ---
8
8
 
9
9
  <objective>
10
- Update a named quorum agent (or all agents) to their latest version. The install method is detected from `~/.claude.json` mcpServers config: `npx`-based agents update via `npm install -g <package>`; `node`-based local repo agents update via `git pull && npm run build` in their repo directory. The running process is NOT killed — run `/qgsd:mcp-restart <agent>` after updating to load the new binary.
10
+ Update a named quorum agent (or all agents) to their latest version. The install method is detected from `~/.claude.json` mcpServers config: `npx`-based agents update via `npm install -g <package>`; `node`-based local repo agents update via `git pull && npm run build` in their repo directory. The running process is NOT killed — run `/nf:mcp-restart <agent>` after updating to load the new binary.
11
11
  </objective>
12
12
 
13
13
  <process>
@@ -18,7 +18,7 @@ Parse `$ARGUMENTS` as one token: `$TARGET`.
18
18
 
19
19
  If `$TARGET` is missing, print usage and stop:
20
20
  ```
21
- Usage: /qgsd:mcp-update <agent|all>
21
+ Usage: /nf:mcp-update <agent|all>
22
22
 
23
23
  Valid agents:
24
24
  codex-cli-1, gemini-cli-1, opencode-1, copilot-1,
@@ -143,7 +143,7 @@ Updated $TARGET
143
143
  Result: <last line of npm/git output>
144
144
 
145
145
  Note: The running agent process is still using the old version.
146
- Run: /qgsd:mcp-restart $TARGET to load the new binary.
146
+ Run: /nf:mcp-restart $TARGET to load the new binary.
147
147
  ```
148
148
 
149
149
  ## Step 6 — All-agent mode (if $TARGET = "all")
@@ -229,9 +229,9 @@ Update results:
229
229
  claude-6 (shared repo) ⚡ SKIPPED
230
230
 
231
231
  To load new binaries, restart updated agents:
232
- /qgsd:mcp-restart codex-cli-1
233
- /qgsd:mcp-restart gemini-cli-1
234
- /qgsd:mcp-restart opencode-1
232
+ /nf:mcp-restart codex-cli-1
233
+ /nf:mcp-restart gemini-cli-1
234
+ /nf:mcp-restart opencode-1
235
235
  (etc. — list only agents that were UPDATED, not SKIPPED)
236
236
  ```
237
237
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:new-milestone
2
+ name: nf:new-milestone
3
3
  description: Start a new milestone cycle — update PROJECT.md and route to requirements
4
4
  argument-hint: "[milestone name, e.g., 'v1.1 Notifications']"
5
5
  allowed-tools:
@@ -21,15 +21,15 @@ Brownfield equivalent of new-project. Project exists, PROJECT.md has history. Ga
21
21
  - `.planning/ROADMAP.md` — phase structure (continues numbering)
22
22
  - `.planning/STATE.md` — reset for new milestone
23
23
 
24
- **After:** `/qgsd:plan-phase [N]` to start execution.
24
+ **After:** `/nf:plan-phase [N]` to start execution.
25
25
  </objective>
26
26
 
27
27
  <execution_context>
28
- @~/.claude/qgsd/workflows/new-milestone.md
29
- @~/.claude/qgsd/references/questioning.md
30
- @~/.claude/qgsd/references/ui-brand.md
31
- @~/.claude/qgsd/templates/project.md
32
- @~/.claude/qgsd/templates/requirements.md
28
+ @~/.claude/nf/workflows/new-milestone.md
29
+ @~/.claude/nf/references/questioning.md
30
+ @~/.claude/nf/references/ui-brand.md
31
+ @~/.claude/nf/templates/project.md
32
+ @~/.claude/nf/templates/requirements.md
33
33
  </execution_context>
34
34
 
35
35
  <context>
@@ -39,6 +39,6 @@ Project and milestone context files are resolved inside the workflow (`init new-
39
39
  </context>
40
40
 
41
41
  <process>
42
- Execute the new-milestone workflow from @~/.claude/qgsd/workflows/new-milestone.md end-to-end.
42
+ Execute the new-milestone workflow from @~/.claude/nf/workflows/new-milestone.md end-to-end.
43
43
  Preserve all workflow gates (validation, questioning, research, requirements, roadmap approval, commits).
44
44
  </process>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:new-project
2
+ name: nf:new-project
3
3
  description: Initialize a new project with deep context gathering and PROJECT.md
4
4
  argument-hint: "[--auto]"
5
5
  allowed-tools:
@@ -25,18 +25,18 @@ Initialize a new project through unified flow: questioning → research (optiona
25
25
  - `.planning/ROADMAP.md` — phase structure
26
26
  - `.planning/STATE.md` — project memory
27
27
 
28
- **After this command:** Run `/qgsd:plan-phase 1` to start execution.
28
+ **After this command:** Run `/nf:plan-phase 1` to start execution.
29
29
  </objective>
30
30
 
31
31
  <execution_context>
32
- @~/.claude/qgsd/workflows/new-project.md
33
- @~/.claude/qgsd/references/questioning.md
34
- @~/.claude/qgsd/references/ui-brand.md
35
- @~/.claude/qgsd/templates/project.md
36
- @~/.claude/qgsd/templates/requirements.md
32
+ @~/.claude/nf/workflows/new-project.md
33
+ @~/.claude/nf/references/questioning.md
34
+ @~/.claude/nf/references/ui-brand.md
35
+ @~/.claude/nf/templates/project.md
36
+ @~/.claude/nf/templates/requirements.md
37
37
  </execution_context>
38
38
 
39
39
  <process>
40
- Execute the new-project workflow from @~/.claude/qgsd/workflows/new-project.md end-to-end.
40
+ Execute the new-project workflow from @~/.claude/nf/workflows/new-project.md end-to-end.
41
41
  Preserve all workflow gates (validation, approvals, commits, routing).
42
42
  </process>