@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.
@@ -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, or prepare an Airlock spec config before installed Airlock validation.
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 Spec Builder
6
+ # Airlock MCP
7
7
 
8
8
  Use this skill to help a human develop Airlock specs over multiple sessions.
9
- The repo is the workbench; Codex is the conversational interface; the CLI is
10
- the deterministic checker.
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: "Improve a process with Airlock specs and OODA loop planning."
4
- default_prompt: "Use $airlock-mcp to ask what process I want to improve, identify the loop around it, draft a small first Airlock spec, and keep a plan for more specs."
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 is not a second thing users install. It is bundled inside
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 two kinds of Airlock expertise:
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 blank specs repo.
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 blank project repo named for the org or project, such as
121
- `home-specs`.
122
- 4. Ask Codex to use Airlock MCP to help improve a process with Airlock specs.
123
- 5. Let Airlock MCP bootstrap the project, ask what process the user wants to
124
- improve, and propose a small first spec plus a plan for more.
125
-
126
- The first workspace should not be created automatically. The spec-building
127
- workbench should first ask for the messy process, identify where information
128
- comes in and actions go out, then choose a small observation, orient, decision,
129
- or action spec.
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.
@@ -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, and improvement capture. This is not
34
- a second install or separate product surface.
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
- `airlock_list_patterns`, `airlock_show_pattern`, `airlock_init_workspace`,
45
- `airlock_list_workspaces`, `airlock_check_workspace`, `airlock_summary`,
46
- `airlock_next`, `airlock_export_csv`, and `airlock_render_sql`
47
-
48
- These give the agent enough context to start a blank `<project>-specs` repo,
49
- ask what process the user wants to improve, enter the spec-building workbench
50
- when a first spec is ready to draft, and avoid creating a first workspace until
51
- the user chooses a path.
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
@@ -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 blank `<project>-specs` repo, and starts
16
- chatting with Airlock. Airlock MCP should start by asking what process the user
17
- wants to improve, then help design specs and operating patterns around observe,
18
- orient, decide, and act.
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 blank `<project>-specs` Codex project
111
- 3. ask what process the user wants to improve
112
- 4. map where information comes in and actions go out
113
- 5. create the first workspace only after the user chooses a small first spec
114
- 6. keep a plan for later specs that improve the full loop
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, and capturing improvements
123
- from real use cases. This workbench owns the spec-building implementation:
124
- patterns, bootstrap, workspace files, local checks, and the Codex skill.
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 and works there with Codex. Users should ask
129
- for Airlock, not install a separate spec-building tool.
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: