@frenchtoastman/oh-my-groundcontrol 0.0.8 → 0.0.12

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/README.md CHANGED
@@ -44,7 +44,7 @@ Install and configure by following the instructions here:
44
44
  https://raw.githubusercontent.com/frenchtoasters/oh-my-groundcontrol/refs/heads/master/README.md
45
45
  ```
46
46
 
47
- **Detailed installation guide:** [docs/installation.md](docs/installation.md)
47
+ **Note:** We recommend adding `.groundcontrol/` to your project's `.gitignore` to prevent generated flight plans from being committed.
48
48
 
49
49
  **Additional guides:**
50
50
  - **[Antigravity Setup](docs/antigravity.md)** - Complete guide for Antigravity provider configuration
@@ -83,30 +83,10 @@ The principles driving our agent behavior are extracted directly from the [NASA
83
83
 
84
84
  *Those who plan, perceive, and verify before the launch sequence begins.*
85
85
 
86
- ```mermaid
87
- graph TD
88
- U["🧑 User"] -->|"request"| P["🏛️ Groundcontrol"]
89
- P -->|"gap analysis"| S["👁️ PreFlight"]
90
- P -->|"codebase recon"| E["🧭 Explorer"]
91
- P -->|"knowledge retrieval"| L["📜 Librarian"]
92
- P -->|"plan verification"| M["⚖️ Verification"]
93
- S -.->|"risks & gaps"| P
94
- E -.->|"file map"| P
95
- L -.->|"docs & references"| P
96
- M -.->|"PASS / FAIL"| P
97
- P -->|"approved plan"| O["👑 Orchestrator"]
98
-
99
- style P fill:#2d4a22,stroke:#4a7c34,color:#fff
100
- style S fill:#4a3728,stroke:#7a5a3e,color:#fff
101
- style E fill:#1a3a4a,stroke:#2a6a8a,color:#fff
102
- style L fill:#3a2a4a,stroke:#6a4a8a,color:#fff
103
- style M fill:#4a4a1a,stroke:#8a8a2a,color:#fff
104
- style O fill:#4a2a1a,stroke:#8a4a2a,color:#fff
105
- ```
106
86
 
107
87
  ---
108
88
 
109
- ### 01. Contractor: The Lead Systems Engineer
89
+ ### 01. Groundcontrol: The Lead Systems Engineer
110
90
 
111
91
  <table>
112
92
  <tr>
@@ -114,7 +94,7 @@ graph TD
114
94
  <sub><i>Designs the mission architecture.</i></sub>
115
95
  </td>
116
96
  <td width="70%" valign="top">
117
- Operating from the engineering drafting boards, the Contractor shapes the mission blueprint before a single line of code is written. They conduct rigorous requirements gathering, consult on system constraints, and deliver decision-complete schematics to ensure the objective is achievable. No system is built without their approved plan.
97
+ Operating from the engineering drafting boards, Groundcontrol shapes the mission blueprint before a single line of code is written. They conduct rigorous requirements gathering, consult on system constraints, and deliver decision-complete schematics to ensure the objective is achievable. No system is built without their approved plan.
118
98
  </td>
119
99
  </tr>
120
100
  <tr>
@@ -124,7 +104,7 @@ graph TD
124
104
  </tr>
125
105
  <tr>
126
106
  <td colspan="2">
127
- <b>Prompt:</b> <a href="src/agents/contractor/index.ts"><code>contractor/index.ts</code></a>
107
+ <b>Prompt:</b> <a href="src/agents/groundcontrol/index.ts"><code>contractor/index.ts</code></a>
128
108
  </td>
129
109
  </tr>
130
110
  <tr>
@@ -136,7 +116,7 @@ graph TD
136
116
 
137
117
  ---
138
118
 
139
- ### 03. PreFlight: The Risk Analyst
119
+ ### 02. PreFlight: The Risk Analyst
140
120
 
141
121
  <table>
142
122
  <tr>
@@ -166,7 +146,7 @@ graph TD
166
146
 
167
147
  ---
168
148
 
169
- ### 04. Verification: The Launch Committer
149
+ ### 03. Verification: The Launch Committer
170
150
 
171
151
  <table>
172
152
  <tr>
@@ -200,29 +180,10 @@ graph TD
200
180
 
201
181
  *Those who explore, advise, and execute once the plan is authorized.*
202
182
 
203
- ```mermaid
204
- graph TD
205
- P["🏛️ Groundcontrol"] -->|"approved plan"| O["👑 Orchestrator"]
206
- O -->|"implementation"| F["⚒️ Fixer"]
207
- O -->|"UI/UX"| D["🎨 Designer"]
208
- O -->|"codebase recon"| E["🧭 Explorer"]
209
- O -->|"architecture advice"| R["🔮 Oracle"]
210
- F -.->|"code changes"| O
211
- D -.->|"visual polish"| O
212
- E -.->|"file map"| O
213
- R -.->|"guidance"| O
214
-
215
- style O fill:#4a2a1a,stroke:#8a4a2a,color:#fff
216
- style F fill:#3a3a3a,stroke:#6a6a6a,color:#fff
217
- style D fill:#4a1a3a,stroke:#8a2a6a,color:#fff
218
- style E fill:#1a3a4a,stroke:#2a6a8a,color:#fff
219
- style R fill:#2a2a4a,stroke:#4a4a8a,color:#fff
220
- style P fill:#2d4a22,stroke:#4a7c34,color:#fff
221
- ```
222
183
 
223
184
  ---
224
185
 
225
- ### 05. Orchestrator: The Flight Director
186
+ ### 04. Orchestrator: The Flight Director
226
187
 
227
188
  <table>
228
189
  <tr>
@@ -252,7 +213,7 @@ graph TD
252
213
 
253
214
  ---
254
215
 
255
- ### 06. Explorer: The Telemetry Scout
216
+ ### 05. Explorer: The Telemetry Scout
256
217
 
257
218
  <table>
258
219
  <tr>
@@ -282,7 +243,7 @@ graph TD
282
243
 
283
244
  ---
284
245
 
285
- ### 07. Oracle: The Principal Architect
246
+ ### 06. Oracle: The Principal Architect
286
247
 
287
248
  <table>
288
249
  <tr>
@@ -312,7 +273,7 @@ graph TD
312
273
 
313
274
  ---
314
275
 
315
- ### 08. Librarian: The Data Archivist
276
+ ### 07. Librarian: The Data Archivist
316
277
 
317
278
  <table>
318
279
  <tr>
@@ -342,7 +303,7 @@ graph TD
342
303
 
343
304
  ---
344
305
 
345
- ### 09. Designer: The Interface Specialist
306
+ ### 08. Designer: The Interface Specialist
346
307
 
347
308
  <table>
348
309
  <tr>
@@ -372,7 +333,7 @@ graph TD
372
333
 
373
334
  ---
374
335
 
375
- ### 10. Fixer: The Systems Integrator
336
+ ### 09. Fixer: The Systems Integrator
376
337
 
377
338
  <table>
378
339
  <tr>
@@ -9,8 +9,11 @@ export declare const GROUNDCONTROL_SYSTEM_PROMPT = "<system-reminder>\n# Groundc
9
9
  * Question permission allows agent to ask user questions.
10
10
  */
11
11
  export declare const GROUNDCONTROL_PERMISSION: {
12
- edit: "allow";
13
- bash: "allow";
12
+ edit: {
13
+ '.groundcontrol/**/*': "allow";
14
+ '*': "ask";
15
+ };
16
+ bash: "ask";
14
17
  webfetch: "allow";
15
18
  question: "allow";
16
19
  };
package/dist/index.js CHANGED
@@ -20820,8 +20820,11 @@ ${GROUNDCONTROL_HIGH_ACCURACY_MODE}
20820
20820
  ${GROUNDCONTROL_PLAN_TEMPLATE}
20821
20821
  ${GROUNDCONTROL_BEHAVIORAL_SUMMARY}`;
20822
20822
  var GROUNDCONTROL_PERMISSION = {
20823
- edit: "allow",
20824
- bash: "allow",
20823
+ edit: {
20824
+ ".groundcontrol/**/*": "allow",
20825
+ "*": "ask"
20826
+ },
20827
+ bash: "ask",
20825
20828
  webfetch: "allow",
20826
20829
  question: "allow"
20827
20830
  };
@@ -20933,6 +20936,11 @@ var ORACLE_PROMPT = `You are Oracle - a strategic technical advisor.
20933
20936
  - Focus on strategy, not execution
20934
20937
  - Point to specific files/lines when relevant
20935
20938
 
20939
+ **Root Cause Analysis (5 Whys)**:
20940
+ - When investigating complex, recurring, or systemic bugs, explicitly execute a formal "5 Whys" Root Cause Analysis.
20941
+ - Present this as a numbered list, drilling down 5 layers past the symptom to identify the core architectural or process failure.
20942
+ - *Early Exit*: Do not use 5 Whys for simple syntax errors, obvious typos, or known external service outages.
20943
+
20936
20944
  **NASA Guardrails (High-Reliability Mode)**:
20937
20945
  - **Destructive Pause**: Stop and request explicit user confirmation before irreversible actions (e.g., force pushing, bulk deletions).
20938
20946
  - **Pre-Flight Verification**: Always run linters/typechecks (\`bun run check:ci\`, \`bun run typecheck\`) to validate changes before concluding.
@@ -21434,6 +21442,15 @@ Architecture | Research]
21434
21442
 
21435
21443
  ---
21436
21444
 
21445
+ ## INTERNAL REASONING: INVISIBLE 5 WHYS
21446
+
21447
+ When gathering requirements or defining scope, adopt a "5 Whys" mindset to uncover the root intent behind a user's request (e.g., if they ask for a caching layer, determine if the root issue is an N+1 query).
21448
+ - **MUST**: Use internal Chain-of-Thought (or careful lateral questioning) to drill down up to 5 layers deep to find the true requirement.
21449
+ - **MUST NOT**: Literally ask the user "Why?" repeatedly. Do not badger the user.
21450
+ - **EXIT STRATEGY**: If the root cause is obvious, or if the user explicitly demands immediate execution ("just build it"), abort the probing and proceed with current context.
21451
+
21452
+ ---
21453
+
21437
21454
  ## CRITICAL RULES
21438
21455
 
21439
21456
  **NEVER**:
@@ -21553,6 +21570,11 @@ is enough.
21553
21570
  **FAIL only if**: Tasks lack QA scenarios, or scenarios are
21554
21571
  unexecutable ("verify it works", "check the page").
21555
21572
 
21573
+ ### 5. Assumption Stress-Testing (Invisible 5 Whys)
21574
+ - Internally use a "5 Whys" approach to stress-test the plan's assumptions (e.g., "Why will this step succeed? Because the API is available. Why is it available?").
21575
+ - Use this strictly as an internal mental model to identify fragile logical leaps.
21576
+ - Do not output the 5 Whys in your response. Only flag a BLOCKER if the assumption fails critically.
21577
+
21556
21578
  ---
21557
21579
 
21558
21580
  ## What You Do NOT Check
@@ -21716,6 +21738,8 @@ need figuring out. Fail only if zero context.
21716
21738
  **Critical blockers**: Missing info that would completely stop work,
21717
21739
  or contradictions. Minor ambiguities are NOT blockers.
21718
21740
 
21741
+ **Assumption stress-testing (Invisible 5 Whys)**: Internally use a 5 Whys approach to stress-test plan assumptions. Do not output the 5 Whys. Only flag if an assumption fails critically.
21742
+
21719
21743
  **QA scenario executability**: Does each task have QA scenarios with
21720
21744
  tool + steps + expected results? Missing or vague QA scenarios are
21721
21745
  blockers.
@@ -23140,13 +23164,13 @@ function createAutoUpdateCheckerHook(ctx, options = {}) {
23140
23164
  const displayVersion = localDevVersion ?? cachedVersion;
23141
23165
  if (localDevVersion) {
23142
23166
  if (showStartupToast) {
23143
- showToast(ctx, `OMO-Slim ${displayVersion} (dev)`, "Running in local development mode.", "info");
23167
+ showToast(ctx, `OMO-Groundcontrol ${displayVersion} (dev)`, "Running in local development mode.", "info");
23144
23168
  }
23145
23169
  log("[auto-update-checker] Local development mode");
23146
23170
  return;
23147
23171
  }
23148
23172
  if (showStartupToast) {
23149
- showToast(ctx, `OMO-Slim ${displayVersion ?? "unknown"}`, "oh-my-groundcontrol is active.", "info");
23173
+ showToast(ctx, `OMO-Groundcontrol ${displayVersion ?? "unknown"}`, "oh-my-groundcontrol is active.", "info");
23150
23174
  }
23151
23175
  runBackgroundUpdateCheck(ctx, autoUpdate).catch((err) => {
23152
23176
  log("[auto-update-checker] Background update check failed:", err);
@@ -23179,14 +23203,14 @@ async function runBackgroundUpdateCheck(ctx, autoUpdate) {
23179
23203
  }
23180
23204
  log(`[auto-update-checker] Update available (${channel}): ${currentVersion} \u2192 ${latestVersion}`);
23181
23205
  if (!autoUpdate) {
23182
- showToast(ctx, `OMO-Slim ${latestVersion}`, `v${latestVersion} available. Restart to apply.`, "info", 8000);
23206
+ showToast(ctx, `OMO-Groundcontrol ${latestVersion}`, `v${latestVersion} available. Restart to apply.`, "info", 8000);
23183
23207
  log("[auto-update-checker] Auto-update disabled, notification only");
23184
23208
  return;
23185
23209
  }
23186
23210
  if (pluginInfo.isPinned) {
23187
23211
  const updated = updatePinnedVersion(pluginInfo.configPath, pluginInfo.entry, latestVersion);
23188
23212
  if (!updated) {
23189
- showToast(ctx, `OMO-Slim ${latestVersion}`, `v${latestVersion} available. Restart to apply.`, "info", 8000);
23213
+ showToast(ctx, `OMO-Groundcontrol ${latestVersion}`, `v${latestVersion} available. Restart to apply.`, "info", 8000);
23190
23214
  log("[auto-update-checker] Failed to update pinned version in config");
23191
23215
  return;
23192
23216
  }
@@ -23195,11 +23219,11 @@ async function runBackgroundUpdateCheck(ctx, autoUpdate) {
23195
23219
  invalidatePackage(PACKAGE_NAME);
23196
23220
  const installSuccess = await runBunInstallSafe(ctx);
23197
23221
  if (installSuccess) {
23198
- showToast(ctx, "OMO-Slim Updated!", `v${currentVersion} \u2192 v${latestVersion}
23222
+ showToast(ctx, "OMO-Groundcontrol Updated!", `v${currentVersion} \u2192 v${latestVersion}
23199
23223
  Restart OpenCode to apply.`, "success", 8000);
23200
23224
  log(`[auto-update-checker] Update installed: ${currentVersion} \u2192 ${latestVersion}`);
23201
23225
  } else {
23202
- showToast(ctx, `OMO-Slim ${latestVersion}`, `v${latestVersion} available. Restart to apply.`, "info", 8000);
23226
+ showToast(ctx, `OMO-Groundcontrol ${latestVersion}`, `v${latestVersion} available. Restart to apply.`, "info", 8000);
23203
23227
  log("[auto-update-checker] bun install failed; update not installed");
23204
23228
  }
23205
23229
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@frenchtoastman/oh-my-groundcontrol",
3
- "version": "0.0.8",
4
- "description": "Lightweight agent orchestration plugin for OpenCode - a slimmed-down fork of oh-my-opencode",
3
+ "version": "0.0.12",
4
+ "description": "An OpenCode plugin for multi-agent orchestration for structured planning with NASA-style guardrails.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "bin": {