@nforma.ai/nforma 0.2.1
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.
- package/LICENSE +22 -0
- package/README.md +1024 -0
- package/agents/qgsd-codebase-mapper.md +764 -0
- package/agents/qgsd-debugger.md +1201 -0
- package/agents/qgsd-executor.md +472 -0
- package/agents/qgsd-integration-checker.md +443 -0
- package/agents/qgsd-phase-researcher.md +502 -0
- package/agents/qgsd-plan-checker.md +643 -0
- package/agents/qgsd-planner.md +1182 -0
- package/agents/qgsd-project-researcher.md +621 -0
- package/agents/qgsd-quorum-orchestrator.md +628 -0
- package/agents/qgsd-quorum-slot-worker.md +41 -0
- package/agents/qgsd-quorum-synthesizer.md +133 -0
- package/agents/qgsd-quorum-test-worker.md +37 -0
- package/agents/qgsd-quorum-worker.md +161 -0
- package/agents/qgsd-research-synthesizer.md +239 -0
- package/agents/qgsd-roadmapper.md +660 -0
- package/agents/qgsd-verifier.md +628 -0
- package/bin/accept-debug-invariant.cjs +165 -0
- package/bin/account-manager.cjs +719 -0
- package/bin/aggregate-requirements.cjs +466 -0
- package/bin/analyze-assumptions.cjs +757 -0
- package/bin/analyze-state-space.cjs +921 -0
- package/bin/attribute-trace-divergence.cjs +150 -0
- package/bin/auth-drivers/gh-cli.cjs +93 -0
- package/bin/auth-drivers/index.cjs +46 -0
- package/bin/auth-drivers/pool.cjs +67 -0
- package/bin/auth-drivers/simple.cjs +95 -0
- package/bin/autoClosePtoF.cjs +110 -0
- package/bin/blessed-terminal.cjs +350 -0
- package/bin/build-phase-index.cjs +472 -0
- package/bin/call-quorum-slot.cjs +541 -0
- package/bin/ccr-secure-config.cjs +99 -0
- package/bin/ccr-secure-start.cjs +83 -0
- package/bin/check-bundled-sdks.cjs +177 -0
- package/bin/check-coverage-guard.cjs +112 -0
- package/bin/check-liveness-fairness.cjs +95 -0
- package/bin/check-mcp-health.cjs +123 -0
- package/bin/check-provider-health.cjs +395 -0
- package/bin/check-results-exit.cjs +24 -0
- package/bin/check-spec-sync.cjs +360 -0
- package/bin/check-trace-redaction.cjs +271 -0
- package/bin/check-trace-schema-drift.cjs +99 -0
- package/bin/compareDrift.cjs +21 -0
- package/bin/conformance-schema.cjs +12 -0
- package/bin/count-scenarios.cjs +420 -0
- package/bin/debt-dedup.cjs +144 -0
- package/bin/debt-ledger.cjs +61 -0
- package/bin/debt-retention.cjs +76 -0
- package/bin/debt-state-machine.cjs +80 -0
- package/bin/detect-coverage-gaps.cjs +204 -0
- package/bin/detect-project-intent.cjs +362 -0
- package/bin/export-prism-constants.cjs +164 -0
- package/bin/extract-annotations.cjs +633 -0
- package/bin/extractFormalExpected.cjs +104 -0
- package/bin/fingerprint-drift.cjs +24 -0
- package/bin/fingerprint-issue.cjs +46 -0
- package/bin/formal-core.cjs +519 -0
- package/bin/formal-ref-linker.cjs +141 -0
- package/bin/formal-test-sync.cjs +788 -0
- package/bin/generate-formal-specs.cjs +588 -0
- package/bin/generate-petri-net.cjs +397 -0
- package/bin/generate-phase-spec.cjs +249 -0
- package/bin/generate-proposed-changes.cjs +194 -0
- package/bin/generate-tla-cfg.cjs +122 -0
- package/bin/generate-traceability-matrix.cjs +701 -0
- package/bin/generate-triage-bundle.cjs +300 -0
- package/bin/gh-account-rotate.cjs +34 -0
- package/bin/initialize-model-registry.cjs +105 -0
- package/bin/install-formal-tools.cjs +382 -0
- package/bin/install.js +2424 -0
- package/bin/isNumericThreshold.cjs +34 -0
- package/bin/issue-classifier.cjs +151 -0
- package/bin/levenshtein.cjs +74 -0
- package/bin/lint-formal-models.cjs +580 -0
- package/bin/load-baseline-requirements.cjs +275 -0
- package/bin/manage-agents-core.cjs +815 -0
- package/bin/migrate-formal-dir.cjs +172 -0
- package/bin/migrate-planning.cjs +206 -0
- package/bin/migrate-to-slots.cjs +255 -0
- package/bin/nForma.cjs +2726 -0
- package/bin/observe-config.cjs +353 -0
- package/bin/observe-debt-writer.cjs +140 -0
- package/bin/observe-handler-grafana.cjs +128 -0
- package/bin/observe-handler-internal.cjs +301 -0
- package/bin/observe-handler-logstash.cjs +153 -0
- package/bin/observe-handler-prometheus.cjs +185 -0
- package/bin/observe-handlers.cjs +436 -0
- package/bin/observe-registry.cjs +131 -0
- package/bin/observe-render.cjs +168 -0
- package/bin/planning-paths.cjs +167 -0
- package/bin/polyrepo.cjs +560 -0
- package/bin/prism-priority.cjs +153 -0
- package/bin/probe-quorum-slots.cjs +167 -0
- package/bin/promote-model.cjs +225 -0
- package/bin/propose-debug-invariants.cjs +165 -0
- package/bin/providers.json +392 -0
- package/bin/pty-proxy.py +129 -0
- package/bin/qgsd-solve.cjs +2477 -0
- package/bin/quorum-consensus-gate.cjs +238 -0
- package/bin/quorum-formal-context.cjs +183 -0
- package/bin/quorum-slot-dispatch.cjs +934 -0
- package/bin/read-policy.cjs +60 -0
- package/bin/requirement-map.cjs +63 -0
- package/bin/requirements-core.cjs +247 -0
- package/bin/resolve-cli.cjs +101 -0
- package/bin/review-mcp-logs.cjs +294 -0
- package/bin/run-account-manager-tlc.cjs +188 -0
- package/bin/run-account-pool-alloy.cjs +158 -0
- package/bin/run-alloy.cjs +153 -0
- package/bin/run-audit-alloy.cjs +187 -0
- package/bin/run-breaker-tlc.cjs +181 -0
- package/bin/run-formal-check.cjs +395 -0
- package/bin/run-formal-verify.cjs +701 -0
- package/bin/run-installer-alloy.cjs +188 -0
- package/bin/run-oauth-rotation-prism.cjs +132 -0
- package/bin/run-oscillation-tlc.cjs +202 -0
- package/bin/run-phase-tlc.cjs +228 -0
- package/bin/run-prism.cjs +446 -0
- package/bin/run-protocol-tlc.cjs +201 -0
- package/bin/run-quorum-composition-alloy.cjs +155 -0
- package/bin/run-sensitivity-sweep.cjs +231 -0
- package/bin/run-stop-hook-tlc.cjs +188 -0
- package/bin/run-tlc.cjs +467 -0
- package/bin/run-transcript-alloy.cjs +173 -0
- package/bin/run-uppaal.cjs +264 -0
- package/bin/secrets.cjs +134 -0
- package/bin/sensitivity-report.cjs +219 -0
- package/bin/sensitivity-sweep-feedback.cjs +194 -0
- package/bin/set-secret.cjs +29 -0
- package/bin/setup-telemetry-cron.sh +36 -0
- package/bin/sweepPtoF.cjs +63 -0
- package/bin/sync-baseline-requirements.cjs +290 -0
- package/bin/task-envelope.cjs +360 -0
- package/bin/telemetry-collector.cjs +229 -0
- package/bin/unified-mcp-server.mjs +735 -0
- package/bin/update-agents.cjs +369 -0
- package/bin/update-scoreboard.cjs +1134 -0
- package/bin/validate-debt-entry.cjs +207 -0
- package/bin/validate-invariant.cjs +419 -0
- package/bin/validate-memory.cjs +389 -0
- package/bin/validate-requirements-haiku.cjs +435 -0
- package/bin/validate-traces.cjs +438 -0
- package/bin/verify-formal-results.cjs +124 -0
- package/bin/verify-quorum-health.cjs +273 -0
- package/bin/write-check-result.cjs +106 -0
- package/bin/xstate-to-tla.cjs +483 -0
- package/bin/xstate-trace-walker.cjs +205 -0
- package/commands/qgsd/add-phase.md +43 -0
- package/commands/qgsd/add-requirement.md +24 -0
- package/commands/qgsd/add-todo.md +47 -0
- package/commands/qgsd/audit-milestone.md +37 -0
- package/commands/qgsd/check-todos.md +45 -0
- package/commands/qgsd/cleanup.md +18 -0
- package/commands/qgsd/close-formal-gaps.md +33 -0
- package/commands/qgsd/complete-milestone.md +136 -0
- package/commands/qgsd/debug.md +166 -0
- package/commands/qgsd/discuss-phase.md +83 -0
- package/commands/qgsd/execute-phase.md +117 -0
- package/commands/qgsd/fix-tests.md +27 -0
- package/commands/qgsd/formal-test-sync.md +32 -0
- package/commands/qgsd/health.md +22 -0
- package/commands/qgsd/help.md +22 -0
- package/commands/qgsd/insert-phase.md +32 -0
- package/commands/qgsd/join-discord.md +18 -0
- package/commands/qgsd/list-phase-assumptions.md +46 -0
- package/commands/qgsd/map-codebase.md +71 -0
- package/commands/qgsd/map-requirements.md +20 -0
- package/commands/qgsd/mcp-restart.md +176 -0
- package/commands/qgsd/mcp-set-model.md +134 -0
- package/commands/qgsd/mcp-setup.md +1371 -0
- package/commands/qgsd/mcp-status.md +274 -0
- package/commands/qgsd/mcp-update.md +238 -0
- package/commands/qgsd/new-milestone.md +44 -0
- package/commands/qgsd/new-project.md +42 -0
- package/commands/qgsd/observe.md +260 -0
- package/commands/qgsd/pause-work.md +38 -0
- package/commands/qgsd/plan-milestone-gaps.md +34 -0
- package/commands/qgsd/plan-phase.md +44 -0
- package/commands/qgsd/polyrepo.md +50 -0
- package/commands/qgsd/progress.md +24 -0
- package/commands/qgsd/queue.md +54 -0
- package/commands/qgsd/quick.md +133 -0
- package/commands/qgsd/quorum-test.md +275 -0
- package/commands/qgsd/quorum.md +707 -0
- package/commands/qgsd/reapply-patches.md +110 -0
- package/commands/qgsd/remove-phase.md +31 -0
- package/commands/qgsd/research-phase.md +189 -0
- package/commands/qgsd/resume-work.md +40 -0
- package/commands/qgsd/set-profile.md +34 -0
- package/commands/qgsd/settings.md +39 -0
- package/commands/qgsd/solve.md +565 -0
- package/commands/qgsd/sync-baselines.md +119 -0
- package/commands/qgsd/triage.md +233 -0
- package/commands/qgsd/update.md +37 -0
- package/commands/qgsd/verify-work.md +38 -0
- package/hooks/dist/config-loader.js +297 -0
- package/hooks/dist/conformance-schema.cjs +12 -0
- package/hooks/dist/gsd-context-monitor.js +64 -0
- package/hooks/dist/qgsd-check-update.js +62 -0
- package/hooks/dist/qgsd-circuit-breaker.js +682 -0
- package/hooks/dist/qgsd-precompact.js +156 -0
- package/hooks/dist/qgsd-prompt.js +653 -0
- package/hooks/dist/qgsd-session-start.js +122 -0
- package/hooks/dist/qgsd-slot-correlator.js +58 -0
- package/hooks/dist/qgsd-spec-regen.js +86 -0
- package/hooks/dist/qgsd-statusline.js +91 -0
- package/hooks/dist/qgsd-stop.js +553 -0
- package/hooks/dist/qgsd-token-collector.js +133 -0
- package/hooks/dist/unified-mcp-server.mjs +669 -0
- package/package.json +95 -0
- package/scripts/build-hooks.js +46 -0
- package/scripts/postinstall.js +48 -0
- package/scripts/secret-audit.sh +45 -0
- package/templates/qgsd.json +49 -0
|
@@ -0,0 +1,134 @@
|
|
|
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
|
|
4
|
+
argument-hint: "<agent> <model>"
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Bash
|
|
7
|
+
- mcp__codex-cli-1__identity
|
|
8
|
+
- mcp__gemini-cli-1__identity
|
|
9
|
+
- mcp__opencode-1__identity
|
|
10
|
+
- mcp__copilot-1__identity
|
|
11
|
+
- mcp__claude-1__identity
|
|
12
|
+
- mcp__claude-2__identity
|
|
13
|
+
- mcp__claude-3__identity
|
|
14
|
+
- mcp__claude-4__identity
|
|
15
|
+
- mcp__claude-5__identity
|
|
16
|
+
- mcp__claude-6__identity
|
|
17
|
+
---
|
|
18
|
+
|
|
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.
|
|
21
|
+
</objective>
|
|
22
|
+
|
|
23
|
+
<process>
|
|
24
|
+
|
|
25
|
+
## Step 1 — Parse arguments
|
|
26
|
+
|
|
27
|
+
Parse `$ARGUMENTS` as two tokens: `$AGENT` and `$MODEL`.
|
|
28
|
+
|
|
29
|
+
If either token is missing, print usage and stop:
|
|
30
|
+
```
|
|
31
|
+
Usage: /qgsd:mcp-set-model <agent> <model>
|
|
32
|
+
|
|
33
|
+
Valid agents:
|
|
34
|
+
codex-cli-1, gemini-cli-1, opencode-1, copilot-1,
|
|
35
|
+
claude-1, claude-2, claude-3, claude-4, claude-5, claude-6
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Step 2 — Validate agent name
|
|
39
|
+
|
|
40
|
+
Check `$AGENT` against the known agent list:
|
|
41
|
+
```
|
|
42
|
+
codex-cli-1, gemini-cli-1, opencode-1, copilot-1,
|
|
43
|
+
claude-1, claude-2, claude-3, claude-4, claude-5, claude-6
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
If not in the list, print an error and stop:
|
|
47
|
+
```
|
|
48
|
+
Error: Unknown agent "$AGENT"
|
|
49
|
+
|
|
50
|
+
Valid agents:
|
|
51
|
+
codex-cli-1 gemini-cli-1 opencode-1 copilot-1
|
|
52
|
+
claude-1 claude-2 claude-3 claude-4
|
|
53
|
+
claude-5 claude-6
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Step 3 — Fetch available_models from identity tool
|
|
57
|
+
|
|
58
|
+
Call the identity tool for `$AGENT` — one sequential call:
|
|
59
|
+
|
|
60
|
+
`mcp__<$AGENT>__identity`
|
|
61
|
+
|
|
62
|
+
(Replace hyphens in the agent name with hyphens as-is: `codex-cli-1` → `mcp__codex-cli-1__identity`)
|
|
63
|
+
|
|
64
|
+
Parse the response. Extract the `available_models` array.
|
|
65
|
+
|
|
66
|
+
If the tool call errors or times out, print a warning and proceed to manual confirmation:
|
|
67
|
+
```
|
|
68
|
+
Warning: Could not reach $AGENT identity tool — cannot validate model name.
|
|
69
|
+
Proceeding with write (unvalidated).
|
|
70
|
+
```
|
|
71
|
+
Skip the model validation in Step 4 and go directly to Step 5.
|
|
72
|
+
|
|
73
|
+
## Step 4 — Validate model name
|
|
74
|
+
|
|
75
|
+
Check if `$MODEL` appears in the `available_models` array from Step 3.
|
|
76
|
+
|
|
77
|
+
If NOT in the list, print an error and stop:
|
|
78
|
+
```
|
|
79
|
+
Error: Model "$MODEL" is not in $AGENT's available_models list.
|
|
80
|
+
|
|
81
|
+
Available models for $AGENT:
|
|
82
|
+
<list each model on its own line>
|
|
83
|
+
|
|
84
|
+
Run /qgsd:mcp-set-model $AGENT <model> with one of the above models.
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
## Step 5 — Write model preference to qgsd.json
|
|
88
|
+
|
|
89
|
+
Run this inline node script via Bash:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
node -e "
|
|
93
|
+
const fs = require('fs');
|
|
94
|
+
const path = require('path');
|
|
95
|
+
const os = require('os');
|
|
96
|
+
|
|
97
|
+
const cfgPath = path.join(os.homedir(), '.claude', 'qgsd.json');
|
|
98
|
+
|
|
99
|
+
let cfg;
|
|
100
|
+
try {
|
|
101
|
+
cfg = JSON.parse(fs.readFileSync(cfgPath, 'utf8'));
|
|
102
|
+
} catch (e) {
|
|
103
|
+
// File missing or malformed — start with minimal defaults
|
|
104
|
+
cfg = { quorum_commands: ['plan-phase', 'new-project', 'new-milestone', 'discuss-phase', 'verify-work', 'research-phase', 'quick'] };
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const oldModel = (cfg.model_preferences || {})[process.env.AGENT] || null;
|
|
108
|
+
cfg.model_preferences = cfg.model_preferences || {};
|
|
109
|
+
cfg.model_preferences[process.env.AGENT] = process.env.MODEL;
|
|
110
|
+
|
|
111
|
+
fs.writeFileSync(cfgPath, JSON.stringify(cfg, null, 2) + '\n');
|
|
112
|
+
|
|
113
|
+
const result = { oldModel, newModel: process.env.MODEL, agent: process.env.AGENT };
|
|
114
|
+
process.stdout.write(JSON.stringify(result) + '\n');
|
|
115
|
+
" AGENT="$AGENT" MODEL="$MODEL"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Parse the JSON output to get `oldModel` and `newModel`.
|
|
119
|
+
|
|
120
|
+
## Step 6 — Print confirmation
|
|
121
|
+
|
|
122
|
+
Display:
|
|
123
|
+
```
|
|
124
|
+
Model preference updated
|
|
125
|
+
|
|
126
|
+
Agent: $AGENT
|
|
127
|
+
Old model: <oldModel or "(none — using agent default)">
|
|
128
|
+
New model: $MODEL
|
|
129
|
+
|
|
130
|
+
The preference is saved to ~/.claude/qgsd.json.
|
|
131
|
+
The next quorum invocation will pass model="$MODEL" when calling $AGENT.
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
</process>
|