@reunionstudio/airlock-mcp 0.1.2 → 0.1.4

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,6 +19,13 @@ 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
@@ -35,7 +45,9 @@ the deterministic checker.
35
45
  any workspace.
36
46
  If the user opened the public `airlock-mcp` workbench repo as the entry
37
47
  point, help them create a separate `<slug>-specs` project repo beside it.
38
- 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:
39
51
  `What process do you want to improve?`
40
52
  Explain that Airlock works best when we can identify the loop around that
41
53
  process:
@@ -62,19 +74,28 @@ the deterministic checker.
62
74
  4. Create `posts` only when the user chooses a feedback loop, asks for humans
63
75
  and agents to provide feedback, or explicitly requests the posts pattern.
64
76
  If the user is unsure, continue process discovery before creating files.
65
- 5. Use `airlock-mcp import-spec <json-file> <name>` when starting from a
77
+ 5. Create `okf-knowledge-bundle` when the user needs governed Markdown
78
+ knowledge, accepted agent context, policies, runbooks, metric definitions,
79
+ investigations, or other business context organized as an OKF-style bundle.
80
+ The spec must declare `core_config.payload_adapter =
81
+ "okf_knowledge_bundle"`. Installed Airlock loads validated bundles with
82
+ `airlock.admin.load_okf_bundle(...)`, can sync parsed metadata with
83
+ `airlock.admin.sync_okf_bundle_metadata(...)`, and exposes authoritative
84
+ accepted context through `AIRLOCK_DATA.ACTIVE.V_OKF_CONCEPT_METADATA`.
85
+ Draft and rejected bundles are not authoritative agent context.
86
+ 6. Use `airlock-mcp import-spec <json-file> <name>` when starting from a
66
87
  spec-library file, an exported `SPEC_CONFIG`, or an existing canonical config.
67
88
  If the source is from `airlock-specs`, treat it as a reusable draft pattern.
68
89
  Check actual API docs, CSV/Excel/JSON samples, schemas, or other artifacts
69
90
  before assuming the source fields match a live third-party system.
70
- 6. Use `airlock-mcp clone <source-workspace> <name>` when creating a related
91
+ 7. Use `airlock-mcp clone <source-workspace> <name>` when creating a related
71
92
  draft from an existing workspace. Treat clone like the old Streamlit UI:
72
93
  preserve the shape but deliberately reset spec identity.
73
- 7. Keep the draft small. Prefer one useful governed output over a large
94
+ 8. Keep the draft small. Prefer one useful governed output over a large
74
95
  speculative system, then keep a plan for later specs.
75
- 8. On later sessions, run `airlock-mcp list-workspaces` when the target draft
96
+ 9. On later sessions, run `airlock-mcp list-workspaces` when the target draft
76
97
  is not obvious.
77
- 9. Run `airlock-mcp summary <workspace>` and
98
+ 10. Run `airlock-mcp summary <workspace>` and
78
99
  `airlock-mcp next <workspace>` before editing so
79
100
  the current shape, sample count, access model, and local check status are
80
101
  visible.
@@ -82,14 +103,14 @@ the deterministic checker.
82
103
  core, file rules, attachments, guest access, column rules, samples, notes,
83
104
  and check status. Do not make the user infer the current spec from file
84
105
  links alone.
85
- 10. Run `airlock-mcp check <workspace>` after changing draft config or sample
106
+ 11. Run `airlock-mcp check <workspace>` after changing draft config or sample
86
107
  records.
87
- 11. Keep `sample.records.json` as the agent-friendly authoring shape. Use
108
+ 12. Keep `sample.records.json` as the agent-friendly authoring shape. Use
88
109
  `airlock-mcp export-csv <workspace>` when the same examples need to be
89
110
  reviewed or loaded through Airlock's CSV path.
90
- 12. Use `airlock-mcp rename`, `archive`, and `restore` when organizing
111
+ 13. Use `airlock-mcp rename`, `archive`, and `restore` when organizing
91
112
  workspaces so spec identity changes remain deliberate.
92
- 13. Use `airlock-mcp render-sql <workspace>` only as a validate-only review
113
+ 14. Use `airlock-mcp render-sql <workspace>` only as a validate-only review
93
114
  artifact. Installed Airlock validation remains authoritative.
94
115
 
95
116
  ## Spec Design Questions
@@ -159,11 +180,110 @@ Use the observe-orient-decide-act loop as the product frame:
159
180
  - Act: controlled writes back to interfaces, commitments, follow-ups, outputs,
160
181
  and the next observations created by those actions.
161
182
 
183
+ ## Apps And Workflows Using Existing Specs
184
+
185
+ Use this path when the user wants to vibe-code an app, dashboard, queue,
186
+ decision UI, analysis workflow, or agent workflow that uses specs they already
187
+ have access to. This is not spec editing by default.
188
+
189
+ Use three delivery modes:
190
+
191
+ - Spec-first: design governed specs, samples, access, and validation before
192
+ building the app surface.
193
+ - App-first: use existing specs to build an app, dashboard, queue, or workflow.
194
+ - Co-development: develop the app and specs together, keeping the contract and
195
+ experience visible side by side.
196
+
197
+ Start by identifying:
198
+
199
+ 1. The app goal: what the user needs to orient around or decide.
200
+ 2. Read specs: existing specs the app reads from, such as budgets, expenses,
201
+ requests, forecasts, observations, payouts, or reference data.
202
+ 3. Write specs: existing specs the app submits to, such as decisions,
203
+ approvals, comments, commitments, actions, or follow-ups.
204
+ 4. The app surface: Streamlit, web app, CLI, notebook, scheduled agent, or
205
+ other runtime.
206
+ 5. The Airlock access path: installed Airlock procedures, approved MCP tools,
207
+ generated read surfaces, stages, or documented SQL helpers available in the
208
+ user's environment.
209
+ 6. Identity, evidence, timestamps, approval, and separation-of-duties rules.
210
+
211
+ Use the current installed Airlock procedure grammar when the app talks to
212
+ Airlock:
213
+
214
+ - `airlock.observe.*` is read-only and is the first-class governance
215
+ observation surface for `app_admin` and `app_observer`.
216
+ - `airlock.admin.*` performs administrative changes and operational mutations.
217
+ - `airlock.agent.*` performs governed user or agent work in the actor's scope.
218
+
219
+ For app-first work, prefer `observe.procedures`, `observe.specs`,
220
+ `observe.spec`, `observe.governance_map`, `observe.explain_access`,
221
+ `observe.health`, `observe.activity`, `observe.admin_activity`,
222
+ `observe.spec_admin_activity`, `observe.billing`, `observe.billing_events`, and
223
+ the relevant context packets before inventing
224
+ custom read paths. Do not tell agents to call retired admin read wrappers such
225
+ as `admin.list_specs`, `admin.describe_role`, `admin.get_spec`, or
226
+ `admin.list_events`; use the matching observe list/detail procedure instead.
227
+ Use `admin.*` only when the app is intentionally changing Airlock setup or
228
+ running an admin operation.
229
+
230
+ Help the app follow the loop:
231
+
232
+ - Observe/read: fetch existing governed data through approved Airlock or
233
+ Snowflake surfaces.
234
+ - Orient: summarize, compare, rank, flag exceptions, propose options, or build
235
+ dashboards and queues.
236
+ - Decide: capture human or agent choices with rationale and evidence.
237
+ - Act/write: submit the decision, approval, action, or follow-up through an
238
+ Airlock spec contract.
239
+
240
+ Keep the boundary clear:
241
+
242
+ - Do not edit specs unless the user asks for spec changes.
243
+ - Do not write directly to Airlock-owned tables, stages, generated views, or
244
+ generated tables.
245
+ - Do not treat Snowflake as an unrestricted database just because the app can
246
+ connect to it.
247
+ - Prefer existing Airlock contracts for reads and writes. If no suitable write
248
+ spec exists, explain the gap and propose a small decision/action spec as a
249
+ separate spec-design step.
250
+ - Keep secrets and credentials out of repo files. Use the app's existing secret
251
+ management pattern.
252
+
253
+ ### App Context Seeding
254
+
255
+ Use `airlock-mcp init-app-context` in an app repo when the app needs local
256
+ Airlock context. The command creates:
257
+
258
+ ```text
259
+ airlock/
260
+ AGENTS.md
261
+ README.md
262
+ specs.manifest.json
263
+ spec-snapshots/
264
+ sample-records/
265
+ generated/
266
+ types/
267
+ sql/
268
+ ```
269
+
270
+ The manifest and snapshots help the app develop against stable local references.
271
+ They are not canonical. Canonical specs live in the specs repo or installed
272
+ Airlock. When seeding from draft workspaces, pass `--spec <workspace>` for each
273
+ spec to copy `spec.config.json` and `sample.records.json` into the app context.
274
+
275
+ In co-development mode, keep two tracks visible:
276
+
277
+ - Spec track: row grain, columns, samples, access, validation, workflow.
278
+ - App track: screens, reads, decisions, writes, user actions, runtime.
279
+
162
280
  ## Pattern Guidance
163
281
 
164
282
  Read only the relevant pattern files:
165
283
 
166
284
  - `patterns/starter-posts/` when the user needs a first feedback loop.
285
+ - `patterns/okf-knowledge-bundle/` when the user needs governed Markdown
286
+ business context for people or agents.
167
287
  - `patterns/guest-access/` when isolation or sharing is the hard part.
168
288
  - `patterns/spec-types/` when choosing observation, commitment,
169
289
  reconciliation, or reference/master-data shape.
@@ -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, gather any existing artifacts, 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,47 @@ 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 four 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.
27
+ 4. Governance observation: use installed Airlock's read-only `observe.*`
28
+ procedures to inspect setup, access, activity, billing events, health,
29
+ context packets, and governance maps before deciding what an app or agent
30
+ should do.
31
+
32
+ ## Installed Airlock Contract
33
+
34
+ Current Airlock separates procedure intent:
35
+
36
+ - `airlock.observe.*` is the read-only governance observation surface. It is
37
+ available to `app_admin` and `app_observer` and is the preferred path for
38
+ discovery, health checks, access explanation, governance maps, activity,
39
+ billing event context, and list/detail context packets.
40
+ - `airlock.admin.*` is for admin changes and operational actions such as
41
+ creating specs, changing roles, loading OKF bundles, rerunning setup, or
42
+ deleting purge candidates.
43
+ - `airlock.agent.*` is for governed agent work such as listing my
44
+ specs, validating/loading data, workflow actions, attachments, delegations,
45
+ and references.
46
+
47
+ When building an app or workflow, prefer `observe.*` for read-only setup and
48
+ monitoring questions, `agent.*` for governed submissions in the actor's scope,
49
+ and `admin.*` only for intentional administrative mutation. Do not use retired
50
+ admin read wrappers such as `admin.list_specs`, `admin.describe_role`, or
51
+ `admin.list_events`; use the matching observe procedures instead.
23
52
 
24
53
  ## Install
25
54
 
@@ -50,7 +79,8 @@ codex mcp add airlock -- npx -y github:reunionstudio/airlock-mcp server
50
79
 
51
80
  The server exposes bootstrap guidance for starting a specs repo, coaching a
52
81
  person through process discovery, and entering the bundled spec-building
53
- workbench when a first spec is ready to draft.
82
+ workbench when a first spec is ready to draft. It also guides agents building
83
+ apps or workflows that use specs the user already has access to.
54
84
 
55
85
  Workspace summaries are structured spec cards. They present the current spec
56
86
  core, file rules, attachment policy, guest access, column rules, sample record
@@ -90,8 +120,11 @@ The server exposes orientation plus local spec-building tools:
90
120
  - `airlock_start`: return setup guidance for a project.
91
121
  - `airlock_doctor`: verify bundled workbench assets.
92
122
  - `airlock_init_repo`: bootstrap a Git-backed specs repo.
123
+ - `airlock_init_app_context`: seed an app repo with spec snapshots, sample
124
+ records, generated helper folders, and an app manifest.
93
125
  - `airlock_list_patterns` and `airlock_show_pattern`: inspect starter patterns.
94
- - `airlock_init_workspace`: create a workspace from `blank` or `posts`.
126
+ - `airlock_init_workspace`: create a workspace from `blank`, `posts`, or
127
+ `okf-knowledge-bundle`.
95
128
  - `airlock_list_workspaces`: inspect active or archived drafts.
96
129
  - `airlock_check_workspace`, `airlock_summary`, and `airlock_next`: validate and re-enter a draft.
97
130
  - `airlock_export_csv`: render `sample.records.json` as Airlock-ready CSV.
@@ -127,13 +160,48 @@ The intended user flow is:
127
160
  4. If Codex is creating the repo, choose where the `home-specs` directory should
128
161
  live before files are written.
129
162
  5. Ask Codex to use Airlock MCP to help improve a process with Airlock specs.
130
- 6. Let Airlock MCP bootstrap the project, ask what process the user wants to
131
- improve, and propose a small first spec plus a plan for more.
163
+ 6. Choose a delivery mode: spec-first, app-first from existing specs, or
164
+ co-development of specs and app together.
165
+ 7. Let Airlock MCP bootstrap the project, ask what process the user wants to
166
+ improve when specs are involved, and propose a small first spec plus a plan
167
+ for more.
168
+
169
+ The first workspace should not be created automatically. Airlock MCP should
170
+ first ask whether the user wants spec-first, app-first from existing specs, or
171
+ co-development of specs and app together. For spec-building work, it should ask
172
+ for the messy process, identify where information comes in and actions go out,
173
+ then choose a small observation, orient, decision, or action spec.
174
+
175
+ For app-building work, Airlock MCP should identify the app goal, read specs,
176
+ write specs, orienting views, decision capture, and approved Airlock/Snowflake
177
+ access paths. The app should submit decisions, approvals, actions, comments, or
178
+ follow-ups through Airlock spec contracts. It should not write directly to
179
+ Airlock-owned tables or bypass spec workflow.
180
+
181
+ When an app repo needs local Airlock context, use:
132
182
 
133
- The first workspace should not be created automatically. The spec-building
134
- workbench should first ask for the messy process, identify where information
135
- comes in and actions go out, then choose a small observation, orient, decision,
136
- or action spec.
183
+ ```bash
184
+ airlock-mcp init-app-context . --mode app-first --spec ../home-specs/workspaces/expenses
185
+ ```
186
+
187
+ That creates:
188
+
189
+ ```text
190
+ airlock/
191
+ AGENTS.md
192
+ README.md
193
+ specs.manifest.json
194
+ spec-snapshots/
195
+ sample-records/
196
+ generated/
197
+ types/
198
+ sql/
199
+ ```
200
+
201
+ The snapshots are for coding, tests, and UI planning. They are not canonical.
202
+ Canonical specs live in the specs repo or installed Airlock. In
203
+ co-development, keep a visible spec track and app track so changes to row
204
+ grain, access, workflow, screens, reads, and governed writes stay aligned.
137
205
 
138
206
  When the user already has artifacts, Airlock MCP should ask for them early:
139
207
  CSV or Excel files, JSON samples, API docs, schemas, forms, screenshots, PDFs,
@@ -146,3 +214,17 @@ points, patterns, and ideas. Those library specs are not guaranteed to reflect
146
214
  the current shape of any third-party system. Current API docs, real exports,
147
215
  samples, schemas, and user-provided artifacts should override library shapes
148
216
  when they conflict.
217
+
218
+ For app-first work against installed Airlock, start with `observe.procedures`,
219
+ `observe.specs`, `observe.spec`, `observe.governance_map`,
220
+ `observe.explain_access`, `observe.health`, and the relevant context packet
221
+ before designing direct SQL helpers. These payloads are intended to be useful
222
+ to agents as well as humans.
223
+
224
+ For governed Markdown knowledge, use the `okf-knowledge-bundle` pattern. It
225
+ sets `core_config.payload_adapter` to `okf_knowledge_bundle` so installed
226
+ Airlock can load locally validated bundles through
227
+ `airlock.admin.load_okf_bundle(...)`, sync parsed metadata through
228
+ `airlock.admin.sync_okf_bundle_metadata(...)`, and expose accepted concept
229
+ metadata from `AIRLOCK_DATA.ACTIVE.V_OKF_CONCEPT_METADATA`. Draft and rejected
230
+ bundles are not authoritative agent context.
@@ -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`
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`
47
49
 
48
50
  These give the agent enough context to start a Git-backed `<project>-specs`
49
51
  repo in a user-chosen location, ask what process the user wants to improve,
50
52
  enter the spec-building workbench when a first spec is ready to draft, and
51
- avoid creating a first workspace until the user chooses a path.
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
@@ -16,12 +16,21 @@ Then the user opens Codex, creates or opens a Git-backed `<project>-specs`
16
16
  repo, and starts chatting with Airlock. GitHub is the recommended default when
17
17
  available. If Codex is creating the repo, it should ask where the directory
18
18
  should live before writing files. Airlock MCP should start by asking what
19
- process the user wants to improve, then help design specs and operating
20
- patterns around observe, orient, decide, and act.
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.
21
23
 
22
24
  The install command is not the spec workspace. It is the connector/setup entry
23
25
  point. The specs repo is still the durable memory.
24
26
 
27
+ For installed Airlock access, teach the current procedure split:
28
+ `airlock.observe.*` is the read-only governance observation surface,
29
+ `airlock.agent.*` is governed agent work, and `airlock.admin.*` is
30
+ administrative mutation. App-first and audit-style workflows should use
31
+ observe payloads for discovery, context, health, access explanation, activity,
32
+ billing events, and governance maps before considering custom SQL helpers.
33
+
25
34
  The connector package and MCP server live in `reunionstudio/airlock-mcp`.
26
35
  This workbench provides the spec-building implementation inside that one
27
36
  installed Airlock MCP experience.
@@ -116,6 +125,37 @@ The first release should optimize the user journey:
116
125
  forms, screenshots, PDFs, exports, or message examples
117
126
  6. use `airlock-specs` library patterns as starting points when useful, while
118
127
  preferring current artifacts over library shapes when they conflict
119
- 7. map where information comes in and actions go out
120
- 8. create the first workspace only after the user chooses a small first spec
121
- 9. keep a plan for later specs that improve the full loop
128
+ 7. use the `okf-knowledge-bundle` pattern when the useful artifact is governed
129
+ Markdown knowledge for accepted agent context
130
+ 8. map where information comes in and actions go out
131
+ 9. create the first workspace only after the user chooses a small first spec
132
+ 10. keep a plan for later specs that improve the full loop
133
+
134
+ For users who already have specs and want to build software, optimize a second
135
+ journey:
136
+
137
+ 1. install connector
138
+ 2. open the app repo in Codex
139
+ 3. ask for the app goal and available specs
140
+ 4. identify read specs and write specs
141
+ 5. seed app-local Airlock context with `airlock-mcp init-app-context` when the
142
+ app needs spec snapshots, samples, generated helpers, and a manifest
143
+ 6. inspect installed setup with read-only `observe.*` procedures when available
144
+ 7. build orienting views, dashboards, queues, proposals, or recommendations
145
+ 8. capture decisions, approvals, actions, comments, or follow-ups through
146
+ Airlock spec contracts
147
+ 9. avoid direct writes to Airlock-owned tables and avoid bypassing spec workflow
148
+
149
+ For users who are developing the app and specs together, optimize a third
150
+ journey:
151
+
152
+ 1. open the app repo or specs repo in Codex
153
+ 2. choose co-development explicitly
154
+ 3. keep a spec track for row grain, columns, access, samples, validation, and
155
+ workflow
156
+ 4. keep an app track for screens, reads, orienting summaries, decision capture,
157
+ governed writes, runtime, and tests
158
+ 5. seed the app repo with `airlock/` snapshots and a manifest when the app needs
159
+ local contract context
160
+ 6. treat app snapshots as development references while canonical specs remain
161
+ in the specs repo or installed Airlock
@@ -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,9 +129,10 @@ 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
@@ -22,6 +22,11 @@ Use `airlock-mcp rename`, `archive`, and `restore` to organize draft folders.
22
22
  `rename` retitles spec identity by default; pass `--keep-spec-identity` for a
23
23
  pure folder move.
24
24
 
25
+ For `okf-knowledge-bundle` workspaces, `sample.records.json` is only a small
26
+ metadata sample for the draft spec. The governed payload is a locally validated
27
+ Markdown directory or `.zip` bundle loaded through installed Airlock's
28
+ `airlock.admin.load_okf_bundle(...)` path.
29
+
25
30
  `review.md` should identify the workspace source mode:
26
31
 
27
32
  - `create`: started from an Airlock MCP pattern