@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
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: nf:join-discord
3
+ description: Join the nForma Discord community
4
+ ---
5
+
6
+ <objective>
7
+ Display the Discord invite link for the nForma community server.
8
+ </objective>
9
+
10
+ <output>
11
+ # Join the nForma Discord
12
+
13
+ Connect with other nForma users, get help, share what you're building, and stay updated.
14
+
15
+ **Server link:** https://discord.com/servers/1474810068636663886
16
+
17
+ Click the link or paste it into your browser to join.
18
+ </output>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:list-phase-assumptions
2
+ name: nf:list-phase-assumptions
3
3
  description: Surface Claude's assumptions about a phase approach before planning
4
4
  argument-hint: "[phase]"
5
5
  allowed-tools:
@@ -17,7 +17,7 @@ Output: Conversational output only (no file creation) - ends with "What do you t
17
17
  </objective>
18
18
 
19
19
  <execution_context>
20
- @~/.claude/qgsd/workflows/list-phase-assumptions.md
20
+ @~/.claude/nf/workflows/list-phase-assumptions.md
21
21
  </execution_context>
22
22
 
23
23
  <context>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:map-codebase
2
+ name: nf:map-codebase
3
3
  description: Analyze codebase with parallel mapper agents to produce .planning/codebase/ documents
4
4
  argument-hint: "[optional: specific area to map, e.g., 'api' or 'auth']"
5
5
  allowed-tools:
@@ -12,7 +12,7 @@ allowed-tools:
12
12
  ---
13
13
 
14
14
  <objective>
15
- Analyze existing codebase using parallel qgsd-codebase-mapper agents to produce structured codebase documents.
15
+ Analyze existing codebase using parallel nf-codebase-mapper agents to produce structured codebase documents.
16
16
 
17
17
  Each mapper agent explores a focus area and **writes documents directly** to `.planning/codebase/`. The orchestrator only receives confirmations, keeping context usage minimal.
18
18
 
@@ -20,7 +20,7 @@ Output: .planning/codebase/ folder with 7 structured documents about the codebas
20
20
  </objective>
21
21
 
22
22
  <execution_context>
23
- @~/.claude/qgsd/workflows/map-codebase.md
23
+ @~/.claude/nf/workflows/map-codebase.md
24
24
  </execution_context>
25
25
 
26
26
  <context>
@@ -30,8 +30,8 @@ Focus area: $ARGUMENTS (optional - if provided, tells agents to focus on specifi
30
30
  Check for .planning/STATE.md - loads context if project already initialized
31
31
 
32
32
  **This command can run:**
33
- - Before /qgsd:new-project (brownfield codebases) - creates codebase map first
34
- - After /qgsd:new-project (greenfield codebases) - updates codebase map as code evolves
33
+ - Before /nf:new-project (brownfield codebases) - creates codebase map first
34
+ - After /nf:new-project (greenfield codebases) - updates codebase map as code evolves
35
35
  - Anytime to refresh codebase understanding
36
36
  </context>
37
37
 
@@ -51,7 +51,7 @@ Check for .planning/STATE.md - loads context if project already initialized
51
51
  <process>
52
52
  1. Check if .planning/codebase/ already exists (offer to refresh or skip)
53
53
  2. Create .planning/codebase/ directory structure
54
- 3. Spawn 4 parallel qgsd-codebase-mapper agents:
54
+ 3. Spawn 4 parallel nf-codebase-mapper agents:
55
55
  - Agent 1: tech focus → writes STACK.md, INTEGRATIONS.md
56
56
  - Agent 2: arch focus → writes ARCHITECTURE.md, STRUCTURE.md
57
57
  - Agent 3: quality focus → writes CONVENTIONS.md, TESTING.md
@@ -59,7 +59,7 @@ Check for .planning/STATE.md - loads context if project already initialized
59
59
  4. Wait for agents to complete, collect confirmations (NOT document contents)
60
60
  5. Verify all 7 documents exist with line counts
61
61
  6. Commit codebase map
62
- 7. Offer next steps (typically: /qgsd:new-project or /qgsd:plan-phase)
62
+ 7. Offer next steps (typically: /nf:new-project or /nf:plan-phase)
63
63
  </process>
64
64
 
65
65
  <success_criteria>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:map-requirements
2
+ name: nf:map-requirements
3
3
  description: Map current and archived milestone requirements into .planning/formal/requirements.json
4
4
  argument-hint: [--dry-run] [--skip-archive] [--skip-validate]
5
5
  allowed-tools:
@@ -11,10 +11,10 @@ Run the requirements mapping pipeline — merges current `.planning/REQUIREMENTS
11
11
  </objective>
12
12
 
13
13
  <execution_context>
14
- @~/.claude/qgsd/workflows/map-requirements.md
14
+ @~/.claude/nf/workflows/map-requirements.md
15
15
  </execution_context>
16
16
 
17
17
  <process>
18
- Execute the map-requirements workflow from @~/.claude/qgsd/workflows/map-requirements.md end-to-end.
18
+ Execute the map-requirements workflow from @~/.claude/nf/workflows/map-requirements.md end-to-end.
19
19
  Pass through --dry-run and --skip-archive flags from arguments.
20
20
  </process>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: qgsd:mcp-restart
2
+ name: nf:mcp-restart
3
3
  description: Restart a quorum agent's MCP server process — kills the running process and waits for Claude Code to reconnect automatically
4
4
  argument-hint: "<agent>"
5
5
  allowed-tools:
@@ -28,7 +28,7 @@ Parse `$ARGUMENTS` as one token: `$AGENT`.
28
28
 
29
29
  If `$AGENT` is missing, print usage and stop:
30
30
  ```
31
- Usage: /qgsd:mcp-restart <agent>
31
+ Usage: /nf:mcp-restart <agent>
32
32
 
33
33
  Valid agents:
34
34
  codex-cli-1, gemini-cli-1, opencode-1, copilot-1,
@@ -170,7 +170,7 @@ Agent $AGENT restarted and responding
170
170
  Print:
171
171
  ```
172
172
  Processes killed. Claude Code is reconnecting to $AGENT.
173
- Check status in a few seconds: /qgsd:mcp-status
173
+ Check status in a few seconds: /nf:mcp-status
174
174
  ```
175
175
 
176
176
  </process>
@@ -1,6 +1,6 @@
1
1
  ---
2
- name: qgsd:mcp-set-model
3
- description: Set the default model for a quorum agent — validates against the agent's available_models and persists to ~/.claude/qgsd.json
2
+ name: nf:mcp-set-model
3
+ description: Set the default model for a quorum agent — validates against the agent's available_models and persists to ~/.claude/nf.json
4
4
  argument-hint: "<agent> <model>"
5
5
  allowed-tools:
6
6
  - Bash
@@ -17,7 +17,7 @@ allowed-tools:
17
17
  ---
18
18
 
19
19
  <objective>
20
- Set the default model for a named quorum agent. The preference is written to `~/.claude/qgsd.json` under `model_preferences` and is picked up by the QGSD prompt hook on the next quorum invocation.
20
+ Set the default model for a named quorum agent. The preference is written to `~/.claude/nf.json` under `model_preferences` and is picked up by the nForma prompt hook on the next quorum invocation.
21
21
  </objective>
22
22
 
23
23
  <process>
@@ -28,7 +28,7 @@ Parse `$ARGUMENTS` as two tokens: `$AGENT` and `$MODEL`.
28
28
 
29
29
  If either token is missing, print usage and stop:
30
30
  ```
31
- Usage: /qgsd:mcp-set-model <agent> <model>
31
+ Usage: /nf:mcp-set-model <agent> <model>
32
32
 
33
33
  Valid agents:
34
34
  codex-cli-1, gemini-cli-1, opencode-1, copilot-1,
@@ -81,10 +81,10 @@ Error: Model "$MODEL" is not in $AGENT's available_models list.
81
81
  Available models for $AGENT:
82
82
  <list each model on its own line>
83
83
 
84
- Run /qgsd:mcp-set-model $AGENT <model> with one of the above models.
84
+ Run /nf:mcp-set-model $AGENT <model> with one of the above models.
85
85
  ```
86
86
 
87
- ## Step 5 — Write model preference to qgsd.json
87
+ ## Step 5 — Write model preference to nf.json
88
88
 
89
89
  Run this inline node script via Bash:
90
90
 
@@ -94,7 +94,7 @@ const fs = require('fs');
94
94
  const path = require('path');
95
95
  const os = require('os');
96
96
 
97
- const cfgPath = path.join(os.homedir(), '.claude', 'qgsd.json');
97
+ const cfgPath = path.join(os.homedir(), '.claude', 'nf.json');
98
98
 
99
99
  let cfg;
100
100
  try {
@@ -127,7 +127,7 @@ Model preference updated
127
127
  Old model: <oldModel or "(none — using agent default)">
128
128
  New model: $MODEL
129
129
 
130
- The preference is saved to ~/.claude/qgsd.json.
130
+ The preference is saved to ~/.claude/nf.json.
131
131
  The next quorum invocation will pass model="$MODEL" when calling $AGENT.
132
132
  ```
133
133