@reunionstudio/airlock-mcp 0.1.1 → 0.1.3
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/.agents/skills/airlock-mcp/SKILL.md +137 -5
- package/.agents/skills/airlock-mcp/agents/openai.yaml +2 -2
- package/README.md +76 -15
- package/docs/architecture.md +21 -10
- package/docs/install-surface.md +46 -9
- package/docs/ooda-loop.md +11 -0
- package/docs/spec-workbench-architecture.md +17 -5
- package/docs/workflows.md +138 -17
- package/package.json +1 -1
- package/setup.py +1 -1
- package/src/airlock_mcp/__init__.py +1 -1
- package/src/airlock_mcp/app_context.py +271 -0
- package/src/airlock_mcp/art.py +1 -1
- package/src/airlock_mcp/bootstrap.py +74 -6
- package/src/airlock_mcp/cli.py +33 -1
- package/src/airlock_mcp/summary.py +215 -23
- package/src/mcp.mjs +5 -5
- package/src/text.mjs +86 -21
- package/src/workbench.mjs +64 -1
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: airlock-mcp
|
|
3
|
-
description: Design, draft, review, and iterate Airlock specs in the Airlock MCP spec-building workbench. Use when Codex is helping a person choose a small starting spec, work through row grain and OODA-loop decisions, import reusable patterns such as posts or guest access setups, validate local draft files,
|
|
3
|
+
description: Design, draft, review, and iterate Airlock specs in the Airlock MCP spec-building workbench, or help build apps and workflows that use existing Airlock specs safely. Use when Codex is helping a person choose a small starting spec, work through row grain and OODA-loop decisions, import reusable patterns such as posts or guest access setups, validate local draft files, prepare an Airlock spec config before installed Airlock validation, or code an app that reads from and submits through existing specs.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Airlock MCP
|
|
6
|
+
# Airlock MCP
|
|
7
7
|
|
|
8
8
|
Use this skill to help a human develop Airlock specs over multiple sessions.
|
|
9
|
-
|
|
10
|
-
the
|
|
9
|
+
Also use it when a human wants to build an app or workflow that uses existing
|
|
10
|
+
Airlock specs. The specs repo is the durable workbench for spec drafts; an app
|
|
11
|
+
repo is the right place for code that reads, orients, decides, and submits
|
|
12
|
+
through existing specs. Codex is the conversational interface; the CLI is the
|
|
13
|
+
deterministic checker for local spec drafts.
|
|
11
14
|
|
|
12
15
|
## Default Path
|
|
13
16
|
|
|
@@ -16,10 +19,23 @@ the deterministic checker.
|
|
|
16
19
|
`sample.records.json`, and `review.md`.
|
|
17
20
|
2. If the current repo is not yet an Airlock MCP specs repo, run or suggest:
|
|
18
21
|
`airlock-mcp init-repo`.
|
|
22
|
+
Exception: if the user asks to build an app, dashboard, approval queue,
|
|
23
|
+
decision UI, agent workflow, or other code that uses existing specs, do not
|
|
24
|
+
bootstrap a specs repo just because the current repo lacks `workspaces/`.
|
|
25
|
+
Treat the current repo as an app repo unless the user asks to create specs.
|
|
26
|
+
Ask for the development mode, available specs, app goal, and read/write
|
|
27
|
+
contract instead. Use `airlock-mcp init-app-context` when the app repo needs
|
|
28
|
+
an `airlock/` folder with spec snapshots and an app manifest.
|
|
19
29
|
When helping create that repo from scratch, ask for the project or
|
|
20
30
|
organization name and suggest `<slug>-specs`; for example, `Home` becomes
|
|
21
31
|
`home-specs`. Reserve `airlock-specs` for the canonical reusable spec
|
|
22
32
|
library.
|
|
33
|
+
Recommend storing the specs project in a real version-controlled repo,
|
|
34
|
+
preferably a GitHub repo when the user already uses GitHub. Before creating
|
|
35
|
+
the directory, ask where the user wants the `<slug>-specs` repo to live. If
|
|
36
|
+
Codex can create the repo, offer to initialize git and create/push a GitHub
|
|
37
|
+
repo; otherwise ask the user to create the repo and open it in Codex before
|
|
38
|
+
running `airlock-mcp init-repo`.
|
|
23
39
|
Public users should normally arrive through the single Airlock MCP install,
|
|
24
40
|
then ask Airlock to help build and use specs. Treat spec-building as a
|
|
25
41
|
capability inside that experience, not a second install.
|
|
@@ -29,7 +45,9 @@ the deterministic checker.
|
|
|
29
45
|
any workspace.
|
|
30
46
|
If the user opened the public `airlock-mcp` workbench repo as the entry
|
|
31
47
|
point, help them create a separate `<slug>-specs` project repo beside it.
|
|
32
|
-
3. If no workspace exists, welcome the user and ask:
|
|
48
|
+
3. If no workspace exists, welcome the user and ask which mode they want:
|
|
49
|
+
spec-first, app-first from existing specs, or co-development.
|
|
50
|
+
For spec-first or co-development, ask:
|
|
33
51
|
`What process do you want to improve?`
|
|
34
52
|
Explain that Airlock works best when we can identify the loop around that
|
|
35
53
|
process:
|
|
@@ -40,6 +58,16 @@ the deterministic checker.
|
|
|
40
58
|
Give examples before naming the concept: apps, files, forms, people, emails,
|
|
41
59
|
calls, mail, websites, APIs, data feeds, or physical events. Then call these
|
|
42
60
|
places interfaces: where the process observes from or acts through.
|
|
61
|
+
Ask whether the user already has artifacts for the process, such as CSV or
|
|
62
|
+
Excel files, JSON samples, API docs, schemas, forms, screenshots, PDFs,
|
|
63
|
+
exports, message examples, or other content people already use. A small real
|
|
64
|
+
sample is often better than a long explanation. Remind the user to redact
|
|
65
|
+
secrets before attaching files or pasting content.
|
|
66
|
+
When relevant, look to the reusable `airlock-specs` library for starting
|
|
67
|
+
points, patterns, and ideas. Do not treat those library specs as guaranteed
|
|
68
|
+
descriptions of any third-party system. Prefer current API docs, real data
|
|
69
|
+
exports, samples, and user-provided artifacts when they conflict with the
|
|
70
|
+
library, and record the reason for the divergence.
|
|
43
71
|
Ask for the messy version. Help turn it into a small first Airlock spec and
|
|
44
72
|
a plan for more. Do not create the first workspace until the user chooses a
|
|
45
73
|
path.
|
|
@@ -48,6 +76,9 @@ the deterministic checker.
|
|
|
48
76
|
If the user is unsure, continue process discovery before creating files.
|
|
49
77
|
5. Use `airlock-mcp import-spec <json-file> <name>` when starting from a
|
|
50
78
|
spec-library file, an exported `SPEC_CONFIG`, or an existing canonical config.
|
|
79
|
+
If the source is from `airlock-specs`, treat it as a reusable draft pattern.
|
|
80
|
+
Check actual API docs, CSV/Excel/JSON samples, schemas, or other artifacts
|
|
81
|
+
before assuming the source fields match a live third-party system.
|
|
51
82
|
6. Use `airlock-mcp clone <source-workspace> <name>` when creating a related
|
|
52
83
|
draft from an existing workspace. Treat clone like the old Streamlit UI:
|
|
53
84
|
preserve the shape but deliberately reset spec identity.
|
|
@@ -59,6 +90,10 @@ the deterministic checker.
|
|
|
59
90
|
`airlock-mcp next <workspace>` before editing so
|
|
60
91
|
the current shape, sample count, access model, and local check status are
|
|
61
92
|
visible.
|
|
93
|
+
Present the summary back to the user as a structured spec card when useful:
|
|
94
|
+
core, file rules, attachments, guest access, column rules, samples, notes,
|
|
95
|
+
and check status. Do not make the user infer the current spec from file
|
|
96
|
+
links alone.
|
|
62
97
|
10. Run `airlock-mcp check <workspace>` after changing draft config or sample
|
|
63
98
|
records.
|
|
64
99
|
11. Keep `sample.records.json` as the agent-friendly authoring shape. Use
|
|
@@ -105,6 +140,25 @@ Spot gaps gently. A user may have one dataset but need additional observations
|
|
|
105
140
|
to orient well, or may rely on hard-to-automate interfaces such as phone calls
|
|
106
141
|
or physical mail.
|
|
107
142
|
|
|
143
|
+
## Artifacts And Libraries
|
|
144
|
+
|
|
145
|
+
Start from artifacts whenever they exist. Useful design artifacts include CSV
|
|
146
|
+
or Excel files, JSON samples, API docs, schemas, forms, screenshots, PDFs,
|
|
147
|
+
exports, message examples, and other defined content that already carries the
|
|
148
|
+
process shape.
|
|
149
|
+
|
|
150
|
+
Use design artifacts to infer row grain, field names, durable identifiers,
|
|
151
|
+
timestamps, evidence, variants, attachment needs, and edge cases. Distinguish
|
|
152
|
+
design artifacts from Airlock attachments: design artifacts help draft the spec;
|
|
153
|
+
attachments are evidence files later submitted with governed records.
|
|
154
|
+
|
|
155
|
+
Use `airlock-specs` as a source of reusable starting points, patterns, and
|
|
156
|
+
ideas. Do not promise that Airlock spec-library shapes reflect current
|
|
157
|
+
third-party APIs, exports, or business objects. If a library shape looks
|
|
158
|
+
outdated, overfit, underfit, or contradicted by current artifacts, override it
|
|
159
|
+
with the best current evidence and explain the decision in `decisions.md` or
|
|
160
|
+
`review.md`.
|
|
161
|
+
|
|
108
162
|
## OODA Loop
|
|
109
163
|
|
|
110
164
|
Use the observe-orient-decide-act loop as the product frame:
|
|
@@ -117,6 +171,84 @@ Use the observe-orient-decide-act loop as the product frame:
|
|
|
117
171
|
- Act: controlled writes back to interfaces, commitments, follow-ups, outputs,
|
|
118
172
|
and the next observations created by those actions.
|
|
119
173
|
|
|
174
|
+
## Apps And Workflows Using Existing Specs
|
|
175
|
+
|
|
176
|
+
Use this path when the user wants to vibe-code an app, dashboard, queue,
|
|
177
|
+
decision UI, analysis workflow, or agent workflow that uses specs they already
|
|
178
|
+
have access to. This is not spec editing by default.
|
|
179
|
+
|
|
180
|
+
Use three delivery modes:
|
|
181
|
+
|
|
182
|
+
- Spec-first: design governed specs, samples, access, and validation before
|
|
183
|
+
building the app surface.
|
|
184
|
+
- App-first: use existing specs to build an app, dashboard, queue, or workflow.
|
|
185
|
+
- Co-development: develop the app and specs together, keeping the contract and
|
|
186
|
+
experience visible side by side.
|
|
187
|
+
|
|
188
|
+
Start by identifying:
|
|
189
|
+
|
|
190
|
+
1. The app goal: what the user needs to orient around or decide.
|
|
191
|
+
2. Read specs: existing specs the app reads from, such as budgets, expenses,
|
|
192
|
+
requests, forecasts, observations, payouts, or reference data.
|
|
193
|
+
3. Write specs: existing specs the app submits to, such as decisions,
|
|
194
|
+
approvals, comments, commitments, actions, or follow-ups.
|
|
195
|
+
4. The app surface: Streamlit, web app, CLI, notebook, scheduled agent, or
|
|
196
|
+
other runtime.
|
|
197
|
+
5. The Airlock access path: installed Airlock procedures, approved MCP tools,
|
|
198
|
+
generated read surfaces, stages, or documented SQL helpers available in the
|
|
199
|
+
user's environment.
|
|
200
|
+
6. Identity, evidence, timestamps, approval, and separation-of-duties rules.
|
|
201
|
+
|
|
202
|
+
Help the app follow the loop:
|
|
203
|
+
|
|
204
|
+
- Observe/read: fetch existing governed data through approved Airlock or
|
|
205
|
+
Snowflake surfaces.
|
|
206
|
+
- Orient: summarize, compare, rank, flag exceptions, propose options, or build
|
|
207
|
+
dashboards and queues.
|
|
208
|
+
- Decide: capture human or agent choices with rationale and evidence.
|
|
209
|
+
- Act/write: submit the decision, approval, action, or follow-up through an
|
|
210
|
+
Airlock spec contract.
|
|
211
|
+
|
|
212
|
+
Keep the boundary clear:
|
|
213
|
+
|
|
214
|
+
- Do not edit specs unless the user asks for spec changes.
|
|
215
|
+
- Do not write directly to Airlock-owned tables, stages, generated views, or
|
|
216
|
+
generated tables.
|
|
217
|
+
- Do not treat Snowflake as an unrestricted database just because the app can
|
|
218
|
+
connect to it.
|
|
219
|
+
- Prefer existing Airlock contracts for reads and writes. If no suitable write
|
|
220
|
+
spec exists, explain the gap and propose a small decision/action spec as a
|
|
221
|
+
separate spec-design step.
|
|
222
|
+
- Keep secrets and credentials out of repo files. Use the app's existing secret
|
|
223
|
+
management pattern.
|
|
224
|
+
|
|
225
|
+
### App Context Seeding
|
|
226
|
+
|
|
227
|
+
Use `airlock-mcp init-app-context` in an app repo when the app needs local
|
|
228
|
+
Airlock context. The command creates:
|
|
229
|
+
|
|
230
|
+
```text
|
|
231
|
+
airlock/
|
|
232
|
+
AGENTS.md
|
|
233
|
+
README.md
|
|
234
|
+
specs.manifest.json
|
|
235
|
+
spec-snapshots/
|
|
236
|
+
sample-records/
|
|
237
|
+
generated/
|
|
238
|
+
types/
|
|
239
|
+
sql/
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
The manifest and snapshots help the app develop against stable local references.
|
|
243
|
+
They are not canonical. Canonical specs live in the specs repo or installed
|
|
244
|
+
Airlock. When seeding from draft workspaces, pass `--spec <workspace>` for each
|
|
245
|
+
spec to copy `spec.config.json` and `sample.records.json` into the app context.
|
|
246
|
+
|
|
247
|
+
In co-development mode, keep two tracks visible:
|
|
248
|
+
|
|
249
|
+
- Spec track: row grain, columns, samples, access, validation, workflow.
|
|
250
|
+
- App track: screens, reads, decisions, writes, user actions, runtime.
|
|
251
|
+
|
|
120
252
|
## Pattern Guidance
|
|
121
253
|
|
|
122
254
|
Read only the relevant pattern files:
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
interface:
|
|
2
2
|
display_name: "Airlock MCP"
|
|
3
|
-
short_description: "
|
|
4
|
-
default_prompt: "Use $airlock-mcp to ask
|
|
3
|
+
short_description: "Design specs or build apps that use Airlock specs."
|
|
4
|
+
default_prompt: "Use $airlock-mcp to ask whether I want to design specs, improve an OODA loop, or build an app/workflow that uses existing specs; then gather artifacts or available specs and help me move safely."
|
package/README.md
CHANGED
|
@@ -8,18 +8,22 @@ It covers the full Airlock loop:
|
|
|
8
8
|
- design specs with the bundled spec-building workbench
|
|
9
9
|
- map the process a person wants to improve into observe, orient, decide, and act
|
|
10
10
|
- use specs for governed data movement, decisions, actions, and feedback loops
|
|
11
|
+
- build apps and workflows that read from and submit through existing specs
|
|
11
12
|
- validate, create, and revise specs against installed Airlock
|
|
12
13
|
|
|
13
|
-
Spec building
|
|
14
|
-
Airlock MCP.
|
|
14
|
+
Spec building and spec-using app guidance are not second things users install.
|
|
15
|
+
They are bundled inside Airlock MCP.
|
|
15
16
|
|
|
16
|
-
Airlock MCP gives agents
|
|
17
|
+
Airlock MCP gives agents three kinds of Airlock help:
|
|
17
18
|
|
|
18
19
|
1. Spec design: draft, check, revise, import, clone, and prepare specs for
|
|
19
20
|
installed Airlock validation.
|
|
20
21
|
2. Airlock operating patterns: use specs to organize observations, orientation,
|
|
21
22
|
governed decisions, controlled actions, separation of duties, and feedback
|
|
22
23
|
loops.
|
|
24
|
+
3. App and workflow implementation: build dashboards, queues, decision UIs,
|
|
25
|
+
analyses, and agent workflows that use existing specs through Airlock
|
|
26
|
+
contracts.
|
|
23
27
|
|
|
24
28
|
## Install
|
|
25
29
|
|
|
@@ -50,7 +54,13 @@ codex mcp add airlock -- npx -y github:reunionstudio/airlock-mcp server
|
|
|
50
54
|
|
|
51
55
|
The server exposes bootstrap guidance for starting a specs repo, coaching a
|
|
52
56
|
person through process discovery, and entering the bundled spec-building
|
|
53
|
-
workbench when a first spec is ready to draft.
|
|
57
|
+
workbench when a first spec is ready to draft. It also guides agents building
|
|
58
|
+
apps or workflows that use specs the user already has access to.
|
|
59
|
+
|
|
60
|
+
Workspace summaries are structured spec cards. They present the current spec
|
|
61
|
+
core, file rules, attachment policy, guest access, column rules, sample record
|
|
62
|
+
shape, note-file status, and local check status so Codex can reflect the draft
|
|
63
|
+
back to the user before asking for decisions.
|
|
54
64
|
|
|
55
65
|
This install shape uses Node because `npx` runs npm package binaries. MCP itself
|
|
56
66
|
does not require Node. Once Airlock MCP does real operational work, such as
|
|
@@ -84,7 +94,9 @@ The server exposes orientation plus local spec-building tools:
|
|
|
84
94
|
|
|
85
95
|
- `airlock_start`: return setup guidance for a project.
|
|
86
96
|
- `airlock_doctor`: verify bundled workbench assets.
|
|
87
|
-
- `airlock_init_repo`: bootstrap a
|
|
97
|
+
- `airlock_init_repo`: bootstrap a Git-backed specs repo.
|
|
98
|
+
- `airlock_init_app_context`: seed an app repo with spec snapshots, sample
|
|
99
|
+
records, generated helper folders, and an app manifest.
|
|
88
100
|
- `airlock_list_patterns` and `airlock_show_pattern`: inspect starter patterns.
|
|
89
101
|
- `airlock_init_workspace`: create a workspace from `blank` or `posts`.
|
|
90
102
|
- `airlock_list_workspaces`: inspect active or archived drafts.
|
|
@@ -117,13 +129,62 @@ The intended user flow is:
|
|
|
117
129
|
|
|
118
130
|
1. Run `npx @reunionstudio/airlock-mcp install` once for the agent environment.
|
|
119
131
|
2. Open Codex.
|
|
120
|
-
3. Create a
|
|
121
|
-
`home-specs`.
|
|
122
|
-
4.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
132
|
+
3. Create or open a Git-backed specs repo named for the org or project, such as
|
|
133
|
+
`home-specs`. GitHub is the recommended default when available.
|
|
134
|
+
4. If Codex is creating the repo, choose where the `home-specs` directory should
|
|
135
|
+
live before files are written.
|
|
136
|
+
5. Ask Codex to use Airlock MCP to help improve a process with Airlock specs.
|
|
137
|
+
6. Choose a delivery mode: spec-first, app-first from existing specs, or
|
|
138
|
+
co-development of specs and app together.
|
|
139
|
+
7. Let Airlock MCP bootstrap the project, ask what process the user wants to
|
|
140
|
+
improve when specs are involved, and propose a small first spec plus a plan
|
|
141
|
+
for more.
|
|
142
|
+
|
|
143
|
+
The first workspace should not be created automatically. Airlock MCP should
|
|
144
|
+
first ask whether the user wants spec-first, app-first from existing specs, or
|
|
145
|
+
co-development of specs and app together. For spec-building work, it should ask
|
|
146
|
+
for the messy process, identify where information comes in and actions go out,
|
|
147
|
+
then choose a small observation, orient, decision, or action spec.
|
|
148
|
+
|
|
149
|
+
For app-building work, Airlock MCP should identify the app goal, read specs,
|
|
150
|
+
write specs, orienting views, decision capture, and approved Airlock/Snowflake
|
|
151
|
+
access paths. The app should submit decisions, approvals, actions, comments, or
|
|
152
|
+
follow-ups through Airlock spec contracts. It should not write directly to
|
|
153
|
+
Airlock-owned tables or bypass spec workflow.
|
|
154
|
+
|
|
155
|
+
When an app repo needs local Airlock context, use:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
airlock-mcp init-app-context . --mode app-first --spec ../home-specs/workspaces/expenses
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
That creates:
|
|
162
|
+
|
|
163
|
+
```text
|
|
164
|
+
airlock/
|
|
165
|
+
AGENTS.md
|
|
166
|
+
README.md
|
|
167
|
+
specs.manifest.json
|
|
168
|
+
spec-snapshots/
|
|
169
|
+
sample-records/
|
|
170
|
+
generated/
|
|
171
|
+
types/
|
|
172
|
+
sql/
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
The snapshots are for coding, tests, and UI planning. They are not canonical.
|
|
176
|
+
Canonical specs live in the specs repo or installed Airlock. In
|
|
177
|
+
co-development, keep a visible spec track and app track so changes to row
|
|
178
|
+
grain, access, workflow, screens, reads, and governed writes stay aligned.
|
|
179
|
+
|
|
180
|
+
When the user already has artifacts, Airlock MCP should ask for them early:
|
|
181
|
+
CSV or Excel files, JSON samples, API docs, schemas, forms, screenshots, PDFs,
|
|
182
|
+
exports, message examples, or other defined content people already use. These
|
|
183
|
+
are design artifacts for drafting the spec; later Airlock attachments are
|
|
184
|
+
evidence files submitted with governed records.
|
|
185
|
+
|
|
186
|
+
Airlock MCP can also consult the reusable `airlock-specs` library for starting
|
|
187
|
+
points, patterns, and ideas. Those library specs are not guaranteed to reflect
|
|
188
|
+
the current shape of any third-party system. Current API docs, real exports,
|
|
189
|
+
samples, schemas, and user-provided artifacts should override library shapes
|
|
190
|
+
when they conflict.
|
package/docs/architecture.md
CHANGED
|
@@ -30,8 +30,9 @@ The spec-building workbench lives in this repo under `src/airlock_mcp`,
|
|
|
30
30
|
`patterns`, `workspaces`, `schemas`, and `.agents/skills/airlock-mcp`.
|
|
31
31
|
Airlock operating patterns live in the same MCP experience: real use cases,
|
|
32
32
|
controlled interface ingestion, OODA loops, governed decisions, separation of
|
|
33
|
-
duties, controlled actions, output review,
|
|
34
|
-
a second install or separate
|
|
33
|
+
duties, controlled actions, output review, improvement capture, and app/workflow
|
|
34
|
+
implementation against existing specs. This is not a second install or separate
|
|
35
|
+
product surface.
|
|
35
36
|
|
|
36
37
|
## MCP Surface
|
|
37
38
|
|
|
@@ -41,14 +42,24 @@ The bootstrap server exposes:
|
|
|
41
42
|
- resource: `airlock://getting-started`
|
|
42
43
|
- orientation tool: `airlock_start`
|
|
43
44
|
- workbench tools: `airlock_doctor`, `airlock_init_repo`,
|
|
44
|
-
`
|
|
45
|
-
`
|
|
46
|
-
`
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
the
|
|
45
|
+
`airlock_init_app_context`, `airlock_list_patterns`,
|
|
46
|
+
`airlock_show_pattern`, `airlock_init_workspace`, `airlock_list_workspaces`,
|
|
47
|
+
`airlock_check_workspace`, `airlock_summary`, `airlock_next`,
|
|
48
|
+
`airlock_export_csv`, and `airlock_render_sql`
|
|
49
|
+
|
|
50
|
+
These give the agent enough context to start a Git-backed `<project>-specs`
|
|
51
|
+
repo in a user-chosen location, ask what process the user wants to improve,
|
|
52
|
+
enter the spec-building workbench when a first spec is ready to draft, and
|
|
53
|
+
avoid creating a first workspace until the user chooses a path. They also give
|
|
54
|
+
the agent enough product guidance to work in an app repo when the user wants to
|
|
55
|
+
build software that reads from existing specs and submits governed decisions or
|
|
56
|
+
actions through Airlock contracts.
|
|
57
|
+
|
|
58
|
+
`airlock_init_app_context` is the bridge for app-first and co-development work.
|
|
59
|
+
It creates an app-local `airlock/` folder with spec snapshots, sample records,
|
|
60
|
+
generated helper placeholders, and `specs.manifest.json`. Those files support
|
|
61
|
+
coding, tests, and UI planning, but they are not canonical. Canonical specs
|
|
62
|
+
remain in the specs repo or installed Airlock.
|
|
52
63
|
|
|
53
64
|
Workbench tools call the bundled Python package with argument arrays and a
|
|
54
65
|
controlled `PYTHONPATH`. They do not expose update commands over MCP. Tool
|
package/docs/install-surface.md
CHANGED
|
@@ -12,10 +12,14 @@ npx @reunionstudio/airlock-mcp install
|
|
|
12
12
|
```
|
|
13
13
|
|
|
14
14
|
Airlock MCP is the single installed interface for agents working with Airlock.
|
|
15
|
-
Then the user opens Codex, creates a
|
|
16
|
-
chatting with Airlock.
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
Then the user opens Codex, creates or opens a Git-backed `<project>-specs`
|
|
16
|
+
repo, and starts chatting with Airlock. GitHub is the recommended default when
|
|
17
|
+
available. If Codex is creating the repo, it should ask where the directory
|
|
18
|
+
should live before writing files. Airlock MCP should start by asking what
|
|
19
|
+
delivery mode the user wants: spec-first, app-first from existing specs, or
|
|
20
|
+
co-development of specs and app together. Then it should help design specs and
|
|
21
|
+
operating patterns around observe, orient, decide, and act, or help code an app
|
|
22
|
+
that reads and submits through Airlock contracts.
|
|
19
23
|
|
|
20
24
|
The install command is not the spec workspace. It is the connector/setup entry
|
|
21
25
|
point. The specs repo is still the durable memory.
|
|
@@ -107,8 +111,41 @@ packaging pressure appears.
|
|
|
107
111
|
The first release should optimize the user journey:
|
|
108
112
|
|
|
109
113
|
1. install connector
|
|
110
|
-
2. create
|
|
111
|
-
3. ask
|
|
112
|
-
4.
|
|
113
|
-
5.
|
|
114
|
-
|
|
114
|
+
2. create or open a Git-backed `<project>-specs` Codex project
|
|
115
|
+
3. ask where the repo directory should live if Codex is creating it
|
|
116
|
+
4. ask what process the user wants to improve
|
|
117
|
+
5. ask for existing artifacts such as CSV, Excel, JSON, API docs, schemas,
|
|
118
|
+
forms, screenshots, PDFs, exports, or message examples
|
|
119
|
+
6. use `airlock-specs` library patterns as starting points when useful, while
|
|
120
|
+
preferring current artifacts over library shapes when they conflict
|
|
121
|
+
7. map where information comes in and actions go out
|
|
122
|
+
8. create the first workspace only after the user chooses a small first spec
|
|
123
|
+
9. keep a plan for later specs that improve the full loop
|
|
124
|
+
|
|
125
|
+
For users who already have specs and want to build software, optimize a second
|
|
126
|
+
journey:
|
|
127
|
+
|
|
128
|
+
1. install connector
|
|
129
|
+
2. open the app repo in Codex
|
|
130
|
+
3. ask for the app goal and available specs
|
|
131
|
+
4. identify read specs and write specs
|
|
132
|
+
5. seed app-local Airlock context with `airlock-mcp init-app-context` when the
|
|
133
|
+
app needs spec snapshots, samples, generated helpers, and a manifest
|
|
134
|
+
6. build orienting views, dashboards, queues, proposals, or recommendations
|
|
135
|
+
7. capture decisions, approvals, actions, comments, or follow-ups through
|
|
136
|
+
Airlock spec contracts
|
|
137
|
+
8. avoid direct writes to Airlock-owned tables and avoid bypassing spec workflow
|
|
138
|
+
|
|
139
|
+
For users who are developing the app and specs together, optimize a third
|
|
140
|
+
journey:
|
|
141
|
+
|
|
142
|
+
1. open the app repo or specs repo in Codex
|
|
143
|
+
2. choose co-development explicitly
|
|
144
|
+
3. keep a spec track for row grain, columns, access, samples, validation, and
|
|
145
|
+
workflow
|
|
146
|
+
4. keep an app track for screens, reads, orienting summaries, decision capture,
|
|
147
|
+
governed writes, runtime, and tests
|
|
148
|
+
5. seed the app repo with `airlock/` snapshots and a manifest when the app needs
|
|
149
|
+
local contract context
|
|
150
|
+
6. treat app snapshots as development references while canonical specs remain
|
|
151
|
+
in the specs repo or installed Airlock
|
package/docs/ooda-loop.md
CHANGED
|
@@ -8,6 +8,16 @@ mail, websites, APIs, data feeds, physical events, payment tools, bank apps, or
|
|
|
8
8
|
shared folders. After those examples are clear, call them interfaces: where the
|
|
9
9
|
process observes from or acts through.
|
|
10
10
|
|
|
11
|
+
Start from existing artifacts when they exist: CSV or Excel files, JSON samples,
|
|
12
|
+
API docs, schemas, forms, screenshots, PDFs, exports, message examples, or other
|
|
13
|
+
defined content people already use. A real sample often reveals identifiers,
|
|
14
|
+
timestamps, optional fields, and edge cases faster than chat can.
|
|
15
|
+
|
|
16
|
+
The reusable `airlock-specs` library can provide starting points, patterns, and
|
|
17
|
+
ideas. It is not a guarantee of the current shape of any third-party API,
|
|
18
|
+
export, or business object. Current docs and actual samples should override the
|
|
19
|
+
library when they conflict.
|
|
20
|
+
|
|
11
21
|
## Observe
|
|
12
22
|
|
|
13
23
|
Name the interfaces, evidence, and signals that matter:
|
|
@@ -15,6 +25,7 @@ Name the interfaces, evidence, and signals that matter:
|
|
|
15
25
|
- human entries
|
|
16
26
|
- agent observations
|
|
17
27
|
- screenshots, PDFs, receipts, exports, or source files
|
|
28
|
+
- CSV, Excel, JSON, API docs, schemas, forms, or message examples
|
|
18
29
|
- source APIs or app objects
|
|
19
30
|
- existing Airlock specs or reference data
|
|
20
31
|
- downstream system state
|
|
@@ -14,6 +14,8 @@ Airlock MCP is intentionally small:
|
|
|
14
14
|
- `art.py`: small terminal identity and about text.
|
|
15
15
|
- `bootstrap.py`: specs-repo bootstrap files, including `AGENTS.md` and the
|
|
16
16
|
repo-scoped Codex skill.
|
|
17
|
+
- `app_context.py`: app-repo Airlock context seeding for spec snapshots,
|
|
18
|
+
sample records, generated helper placeholders, and `specs.manifest.json`.
|
|
17
19
|
- `manage.py`: workspace discovery, archive, restore, rename, and next-action
|
|
18
20
|
helpers.
|
|
19
21
|
- `project.py`: checkout discovery and environment override handling.
|
|
@@ -55,6 +57,8 @@ The old Airlock Streamlit editor used mode-specific hydration:
|
|
|
55
57
|
Airlock MCP maps that to files:
|
|
56
58
|
|
|
57
59
|
- `init-repo`: prepare a separate specs repo for Codex and Airlock MCP
|
|
60
|
+
- `init-app-context`: prepare an app repo `airlock/` folder for app-first or
|
|
61
|
+
co-development work against existing specs
|
|
58
62
|
- `init`: create from a pattern
|
|
59
63
|
- `import-spec`: edit/import an existing canonical or spec-library config in a
|
|
60
64
|
new workspace
|
|
@@ -68,6 +72,12 @@ Airlock MCP maps that to files:
|
|
|
68
72
|
This repo does not try to be the installed Airlock editor. It gives Codex and
|
|
69
73
|
humans a careful drafting surface before Airlock receives the final config.
|
|
70
74
|
|
|
75
|
+
`init-app-context` does not make app-local snapshots canonical. It gives an app
|
|
76
|
+
repo stable development references for coding, tests, UI planning, and generated
|
|
77
|
+
helpers. Canonical specs remain in the specs repo or installed Airlock. Use
|
|
78
|
+
`--force` to refresh snapshots from canonical workspace files after the spec
|
|
79
|
+
changes.
|
|
80
|
+
|
|
71
81
|
## Update Boundary
|
|
72
82
|
|
|
73
83
|
`self-update` supports two intentionally simple paths:
|
|
@@ -119,14 +129,16 @@ npx @reunionstudio/airlock-mcp install
|
|
|
119
129
|
|
|
120
130
|
The connector implementation belongs in `reunionstudio/airlock-mcp`. Airlock
|
|
121
131
|
MCP is the single installed interface for agents working with Airlock: building
|
|
122
|
-
specs, using specs to pull and push governed data,
|
|
123
|
-
from real use cases. This
|
|
124
|
-
|
|
132
|
+
specs, using specs to pull and push governed data, building apps or workflows
|
|
133
|
+
that use existing specs, and capturing improvements from real use cases. This
|
|
134
|
+
workbench owns the spec-building implementation: patterns, bootstrap, workspace
|
|
135
|
+
files, local checks, and the Codex skill.
|
|
125
136
|
|
|
126
137
|
That command is the agent connector/setup entry point, not the user's spec
|
|
127
138
|
workspace. After installing or registering the connector, the user still creates
|
|
128
|
-
a separate `<project>-specs` repo
|
|
129
|
-
|
|
139
|
+
or opens a separate Git-backed `<project>-specs` repo in a user-chosen location
|
|
140
|
+
and works there with Codex. GitHub is the recommended default when available.
|
|
141
|
+
Users should ask for Airlock, not install a separate spec-building tool.
|
|
130
142
|
|
|
131
143
|
For Codex, the install command should use the platform MCP manager rather than
|
|
132
144
|
editing config files directly:
|