@reunionstudio/airlock-mcp 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,22 +29,30 @@ the deterministic checker.
29
29
  any workspace.
30
30
  If the user opened the public `airlock-mcp` workbench repo as the entry
31
31
  point, help them create a separate `<slug>-specs` project repo beside it.
32
- 3. If no workspace exists, welcome the user and offer three starting paths
33
- before creating files:
34
- - brainstorm possible specs using the OODA loop
35
- - start from a known process and create a blank workspace
36
- - create a `posts` feedback loop where humans and agents can submit
37
- requests, observations, and responses
32
+ 3. If no workspace exists, welcome the user and ask:
33
+ `What process do you want to improve?`
34
+ Explain that Airlock works best when we can identify the loop around that
35
+ process:
36
+ - what information comes in
37
+ - what context helps people or agents understand it
38
+ - what decision needs to be made
39
+ - what action happens after the decision
40
+ Give examples before naming the concept: apps, files, forms, people, emails,
41
+ calls, mail, websites, APIs, data feeds, or physical events. Then call these
42
+ places interfaces: where the process observes from or acts through.
43
+ Ask for the messy version. Help turn it into a small first Airlock spec and
44
+ a plan for more. Do not create the first workspace until the user chooses a
45
+ path.
38
46
  4. Create `posts` only when the user chooses a feedback loop, asks for humans
39
47
  and agents to provide feedback, or explicitly requests the posts pattern.
40
- If the user is unsure, offer OODA brainstorming first.
48
+ If the user is unsure, continue process discovery before creating files.
41
49
  5. Use `airlock-mcp import-spec <json-file> <name>` when starting from a
42
50
  spec-library file, an exported `SPEC_CONFIG`, or an existing canonical config.
43
51
  6. Use `airlock-mcp clone <source-workspace> <name>` when creating a related
44
52
  draft from an existing workspace. Treat clone like the old Streamlit UI:
45
53
  preserve the shape but deliberately reset spec identity.
46
54
  7. Keep the draft small. Prefer one useful governed output over a large
47
- speculative system.
55
+ speculative system, then keep a plan for later specs.
48
56
  8. On later sessions, run `airlock-mcp list-workspaces` when the target draft
49
57
  is not obvious.
50
58
  9. Run `airlock-mcp summary <workspace>` and
@@ -63,7 +71,9 @@ the deterministic checker.
63
71
 
64
72
  ## Spec Design Questions
65
73
 
66
- Resolve these in order, and write the answers into `decisions.md`:
74
+ Use these as an internal checklist. Do not dump the whole list into chat.
75
+ Write resolved answers into `decisions.md` and ask the human only for missing
76
+ or risky decisions:
67
77
 
68
78
  1. What is one row about?
69
79
  2. What systems, users, files, events, or reference data must be observed before
@@ -79,17 +89,33 @@ Resolve these in order, and write the answers into `decisions.md`:
79
89
  10. Which optional context can live in a validated `variant` field?
80
90
  11. Who submits, reviews, reads, delegates, and owns the process?
81
91
 
92
+ ## Interfaces
93
+
94
+ Use interface to mean any place the process observes from or acts through.
95
+ Do not lead with the word before examples. Interfaces can be apps, files, forms,
96
+ people, emails, calls, mail, websites, APIs, data feeds, physical events,
97
+ shared folders, payment tools, bank apps, or other systems.
98
+
99
+ When a user names a process, map the interfaces both ways:
100
+
101
+ - Observe: where information enters the loop.
102
+ - Act: where a decision writes back to the world.
103
+
104
+ Spot gaps gently. A user may have one dataset but need additional observations
105
+ to orient well, or may rely on hard-to-automate interfaces such as phone calls
106
+ or physical mail.
107
+
82
108
  ## OODA Loop
83
109
 
84
110
  Use the observe-orient-decide-act loop as the product frame:
85
111
 
86
- - Observe: source systems, human signals, files, screenshots, exports, APIs,
87
- reference specs, and prior Airlock outputs.
88
- - Orient: row grain, field types, access model, evidence, workflow, references,
89
- expectations, and risk.
90
- - Decide: the smallest governed output worth creating now.
91
- - Act: validate locally, create in Airlock, collect real records, then extend or
92
- add the next spec based on feedback.
112
+ - Observe: controlled interface ingestion and observation/reference specs.
113
+ - Orient: context, proposals, scoring, exception queues, summaries, and gaps in
114
+ the observation set.
115
+ - Decide: governed choices by people or agents, with identity, timestamp,
116
+ rationale, evidence, approval, and separation of duties.
117
+ - Act: controlled writes back to interfaces, commitments, follow-ups, outputs,
118
+ and the next observations created by those actions.
93
119
 
94
120
  ## Pattern Guidance
95
121
 
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Airlock MCP"
3
- short_description: "Draft and review Airlock specs with Codex."
4
- default_prompt: "Use $airlock-mcp to help me draft a small Airlock spec, choose a starting pattern, and check the local workspace."
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."
package/README.md CHANGED
@@ -5,18 +5,21 @@ Airlock.
5
5
 
6
6
  It covers the full Airlock loop:
7
7
 
8
- - build specs with the bundled spec-building workbench
9
- - use specs to pull and push governed data with the Airlock Star capability
8
+ - design specs with the bundled spec-building workbench
9
+ - map the process a person wants to improve into observe, orient, decide, and act
10
+ - use specs for governed data movement, decisions, actions, and feedback loops
10
11
  - validate, create, and revise specs against installed Airlock
11
- - capture real use cases and improvements so specs get better over time
12
12
 
13
13
  Spec building is not a second thing users install. It is bundled inside
14
14
  Airlock MCP.
15
15
 
16
- Airlock Star is not a second thing users install either. It is the capability
17
- inside Airlock MCP for working through real Airlock use cases,
18
- pulling and pushing data through specs, reading outputs, and turning experience
19
- back into better specs.
16
+ Airlock MCP gives agents two kinds of Airlock expertise:
17
+
18
+ 1. Spec design: draft, check, revise, import, clone, and prepare specs for
19
+ installed Airlock validation.
20
+ 2. Airlock operating patterns: use specs to organize observations, orientation,
21
+ governed decisions, controlled actions, separation of duties, and feedback
22
+ loops.
20
23
 
21
24
  ## Install
22
25
 
@@ -26,7 +29,7 @@ Dogfood directly from GitHub:
26
29
  npx -y github:reunionstudio/airlock-mcp install --package github:reunionstudio/airlock-mcp
27
30
  ```
28
31
 
29
- After the npm package is published, use:
32
+ Install from npm:
30
33
 
31
34
  ```bash
32
35
  npx @reunionstudio/airlock-mcp install
@@ -45,9 +48,9 @@ The GitHub dogfood command registers:
45
48
  codex mcp add airlock -- npx -y github:reunionstudio/airlock-mcp server
46
49
  ```
47
50
 
48
- The server exposes bootstrap guidance for starting a specs repo and entering
49
- the bundled spec-building workbench or the Airlock Star use-and-improve
50
- capability.
51
+ The server exposes bootstrap guidance for starting a specs repo, coaching a
52
+ person through process discovery, and entering the bundled spec-building
53
+ workbench when a first spec is ready to draft.
51
54
 
52
55
  This install shape uses Node because `npx` runs npm package binaries. MCP itself
53
56
  does not require Node. Once Airlock MCP does real operational work, such as
@@ -116,11 +119,11 @@ The intended user flow is:
116
119
  2. Open Codex.
117
120
  3. Create a blank project repo named for the org or project, such as
118
121
  `home-specs`.
119
- 4. Ask Codex to use Airlock MCP to help build specs and use specs with
120
- Airlock Star.
121
- 5. Let Airlock MCP bootstrap the project, welcome the user, and offer the next
122
- useful path before creating the first workspace.
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.
123
125
 
124
126
  The first workspace should not be created automatically. The spec-building
125
- workbench should offer OODA brainstorming, a known-process draft, or a shared
126
- `posts` feedback loop.
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.
@@ -28,9 +28,10 @@ heavier operational tools mature.
28
28
 
29
29
  The spec-building workbench lives in this repo under `src/airlock_mcp`,
30
30
  `patterns`, `workspaces`, `schemas`, and `.agents/skills/airlock-mcp`.
31
- Airlock Star is the use-and-improve capability inside Airlock MCP: real use
32
- cases, governed pull/push through specs, output review, and improvement capture.
33
- It is also not a second install.
31
+ Airlock operating patterns live in the same MCP experience: real use cases,
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.
34
35
 
35
36
  ## MCP Surface
36
37
 
@@ -45,8 +46,8 @@ The bootstrap server exposes:
45
46
  `airlock_next`, `airlock_export_csv`, and `airlock_render_sql`
46
47
 
47
48
  These give the agent enough context to start a blank `<project>-specs` repo,
48
- enter the spec-building workbench when specs need drafting, enter Star when
49
- specs need to be used or improved, and avoid creating a first workspace until
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
50
51
  the user chooses a path.
51
52
 
52
53
  Workbench tools call the bundled Python package with argument arrays and a
@@ -13,8 +13,9 @@ npx @reunionstudio/airlock-mcp install
13
13
 
14
14
  Airlock MCP is the single installed interface for agents working with Airlock.
15
15
  Then the user opens Codex, creates a blank `<project>-specs` repo, and starts
16
- chatting with Airlock. Airlock MCP should cover building specs, using specs to
17
- pull and push governed data, and capturing improvements from real use cases.
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.
18
19
 
19
20
  The install command is not the spec workspace. It is the connector/setup entry
20
21
  point. The specs repo is still the durable memory.
@@ -107,6 +108,7 @@ The first release should optimize the user journey:
107
108
 
108
109
  1. install connector
109
110
  2. create blank `<project>-specs` Codex project
110
- 3. bootstrap the spec-building capability when specs need drafting
111
- 4. help the user use specs to validate, load, read, push, and pull data
112
- 5. create the first workspace only after the user chooses a path
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
package/docs/ooda-loop.md CHANGED
@@ -1,10 +1,16 @@
1
1
  # OODA Loop For Airlock Specs
2
2
 
3
- Airlock specs should support a business loop, not just a table.
3
+ Airlock specs should support a process loop, not just a table.
4
+
5
+ Airlock works best when we can identify where information comes in and where
6
+ actions go out. Those places might be apps, files, forms, people, emails, calls,
7
+ mail, websites, APIs, data feeds, physical events, payment tools, bank apps, or
8
+ shared folders. After those examples are clear, call them interfaces: where the
9
+ process observes from or acts through.
4
10
 
5
11
  ## Observe
6
12
 
7
- Name the evidence and systems that matter:
13
+ Name the interfaces, evidence, and signals that matter:
8
14
 
9
15
  - human entries
10
16
  - agent observations
@@ -15,7 +21,7 @@ Name the evidence and systems that matter:
15
21
 
16
22
  ## Orient
17
23
 
18
- Turn observations into a governed shape:
24
+ Turn observations into context that can support a decision:
19
25
 
20
26
  - one row grain
21
27
  - durable identifiers
@@ -27,14 +33,20 @@ Turn observations into a governed shape:
27
33
  - workflow
28
34
  - references
29
35
  - expectations
36
+ - missing observations or quality gaps
30
37
 
31
38
  ## Decide
32
39
 
33
- Choose the smallest governed output worth creating now. If uncertainty is high,
34
- start with `posts` and let real feedback shape the next spec.
40
+ Capture the governed choice. A decision spec should identify who or what made
41
+ the choice, when it happened, which option was selected, what evidence or
42
+ rationale mattered, and what separation of duties applies.
35
43
 
36
44
  ## Act
37
45
 
38
- Create the spec in Airlock only after local drafting is coherent. Then collect
39
- records, review them, and decide whether to revise the spec or add the next
40
- small spec.
46
+ Model the action that follows the decision: send an email, submit payment,
47
+ update a website, change a price, open a ticket, trigger outreach, produce a
48
+ filing, request more evidence, or create another governed output. The action
49
+ creates new observations and the loop spins again.
50
+
51
+ Start with one small useful spec, then keep a plan for the next specs that
52
+ complete or improve the loop.
package/docs/workflows.md CHANGED
@@ -20,10 +20,13 @@ The preferred Codex prompt is:
20
20
  ```text
21
21
  I want to use Airlock MCP to start working with Airlock specs for Home.
22
22
 
23
- Set up this project as an Airlock specs repo. Use the Airlock MCP
24
- spec-building capability when we need to draft or revise specs. Welcome me,
25
- help me think through real Airlock use cases, and ask only for the missing
26
- decisions. Do not create the first workspace until I choose a path.
23
+ Set up this project as an Airlock specs repo. Welcome me by asking what
24
+ process I want to improve. Explain that Airlock works best when we can
25
+ identify the loop around that process: what information comes in, what context
26
+ helps us understand it, what decision needs to be made, and what action happens
27
+ after the decision. Ask for the messy version, then help turn it into a small
28
+ first Airlock spec and a plan for more. Do not create the first workspace until
29
+ I choose a path.
27
30
  ```
28
31
 
29
32
  When dogfooding this implementation repo before the MCP package is published,
@@ -66,26 +69,43 @@ The MCP-style flow should be:
66
69
  2. Open Codex.
67
70
  3. Create a new blank project named for the org or project, such as
68
71
  `home-specs`.
69
- 4. Tell Codex: `Use Airlock to help me build and use specs.`
70
- 5. Airlock MCP welcomes, offers OODA brainstorming, a known-process draft, a
71
- `posts` feedback loop, or installed-Airlock validation/use.
72
+ 4. Tell Codex: `Use Airlock to help me improve a process with specs.`
73
+ 5. Airlock MCP welcomes, asks what process the user wants to improve, explains
74
+ the loop around the process, and proposes a small first spec plus a plan for
75
+ more.
72
76
 
73
77
  `init-repo` creates `AGENTS.md`, `.agents/skills/airlock-mcp/SKILL.md`, and
74
78
  `workspaces/`. That is what lets Codex understand prompts such as
75
79
  `Use $airlock-mcp` inside the specs repo.
76
80
 
77
- After bootstrap, offer three paths before creating a workspace:
81
+ After bootstrap, do not start with a pattern picker. Ask:
78
82
 
79
- - brainstorm possible specs using the OODA loop
80
- - start from a known process and create a blank workspace
81
- - create a `posts` feedback loop for humans and agents to submit requests,
82
- observations, and responses
83
+ ```text
84
+ What process do you want to improve?
85
+ ```
86
+
87
+ Then explain:
88
+
89
+ - Airlock works best when we can identify what information comes in.
90
+ - Airlock works best when we can identify what context helps people or agents
91
+ understand that information.
92
+ - Airlock works best when we can identify what decision needs to be made.
93
+ - Airlock works best when we can identify what action happens after the
94
+ decision.
95
+
96
+ Information may come from apps, files, forms, people, emails, calls, mail,
97
+ websites, APIs, data feeds, or physical events. Actions may go back through
98
+ those same places. After giving examples, call these places interfaces: where
99
+ the process observes from or acts through.
100
+
101
+ Ask for the messy version. Help turn it into a small first Airlock spec and a
102
+ plan for more.
83
103
 
84
104
  ## Start From Feedback
85
105
 
86
106
  Use this when the user chooses a shared feedback loop for humans and agents.
87
- If they are not sure what to model yet, offer OODA brainstorming before creating
88
- this workspace.
107
+ If they are not sure what to model yet, continue process discovery before
108
+ creating this workspace.
89
109
 
90
110
  ```bash
91
111
  airlock-mcp init feedback-loop --pattern posts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reunionstudio/airlock-mcp",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Single-install MCP interface for Airlock agents.",
5
5
  "type": "module",
6
6
  "repository": {
package/setup.py CHANGED
@@ -27,7 +27,7 @@ def data_files():
27
27
 
28
28
  setup(
29
29
  name="airlock-mcp",
30
- version="0.1.0",
30
+ version="0.1.1",
31
31
  description="Codex-first workbench and CLI for drafting Airlock specs.",
32
32
  packages=find_packages("src"),
33
33
  package_dir={"": "src"},
@@ -1,3 +1,3 @@
1
1
  """Airlock MCP CLI package."""
2
2
 
3
- __version__ = "0.1.0"
3
+ __version__ = "0.1.1"
@@ -37,23 +37,35 @@ installed Airlock app.
37
37
 
38
38
  ## Starting A Spec Project
39
39
 
40
- After bootstrap, welcome the user and orient before creating a workspace. Ask
41
- whether they want to:
40
+ After bootstrap, welcome the user and orient before creating a workspace. Start
41
+ with:
42
42
 
43
- - brainstorm possible specs with the OODA loop
44
- - start from a known process they already have in mind
45
- - create a shared `posts` feedback loop for humans and agents to submit
46
- requests, observations, and responses
43
+ What process do you want to improve?
47
44
 
48
- Create `posts` only when the user chooses a feedback loop or explicitly asks
49
- for the posts pattern.
45
+ Explain that Airlock works best when we can identify the loop around that
46
+ process:
47
+
48
+ 1. what information comes in
49
+ 2. what context helps people or agents understand it
50
+ 3. what decision needs to be made
51
+ 4. what action happens after the decision
52
+
53
+ Information may come from apps, files, forms, people, emails, calls, mail,
54
+ websites, APIs, data feeds, or physical events. Actions may go back through
55
+ those same places. After giving examples, call these places interfaces: where
56
+ the process observes from or acts through.
57
+
58
+ Ask for the messy version. Help turn it into a small first Airlock spec and a
59
+ plan for more. Do not create the first workspace until the user chooses a path.
60
+ Create `posts` only when the user wants a shared feedback loop or explicitly
61
+ asks for the posts pattern.
50
62
 
51
63
  ## Working Style
52
64
 
53
65
  - Use the repo-scoped `$airlock-mcp` skill for spec drafting, review, and
54
66
  pattern selection.
55
67
  - Keep drafts small and concrete. Prefer one useful governed output over a
56
- large speculative process map.
68
+ large speculative process map, then keep a plan for later specs.
57
69
  - Preserve decisions in workspace files so future Codex sessions can resume
58
70
  without relying on chat memory.
59
71
  - Use `airlock-mcp list-workspaces` before guessing which draft to resume.
@@ -78,6 +90,8 @@ Resolve these before final JSON:
78
90
  - workflow and pushback
79
91
  - references and expectations
80
92
  - delegation and agent identity
93
+ - interfaces observed from or acted through
94
+ - likely gaps in observations, orientation, decisions, or actions
81
95
  - observe-orient-decide-act loop
82
96
 
83
97
  Do not encode Airlock lifecycle state, reviewer notes, approval status, or
@@ -155,7 +169,7 @@ def format_bootstrap_result(result: BootstrapResult) -> str:
155
169
  "next:",
156
170
  "1. Open this repo in Codex.",
157
171
  "2. Ask: Use Airlock to help me build and use specs.",
158
- "3. Choose OODA brainstorming, a known process, or a posts feedback loop.",
172
+ "3. Start with: What process do you want to improve?",
159
173
  ]
160
174
  )
161
175
  return "\n".join(lines)
@@ -233,8 +233,24 @@ def next_steps(workspace: Path) -> str:
233
233
  lines.append(f"2. Run `airlock-mcp summary {workspace}` to confirm the shape.")
234
234
  return "\n".join(lines)
235
235
  if _text_has_open_placeholders(workspace / "decisions.md"):
236
- lines.append("1. Fill in decisions.md for row grain, identifiers, time, evidence, access, and OODA.")
237
- lines.append(f"2. Run `airlock-mcp next {workspace}` when the design notes are current.")
236
+ spec_name = ""
237
+ if isinstance(spec, dict):
238
+ core_config = spec.get("core_config")
239
+ if isinstance(core_config, dict):
240
+ spec_name = str(core_config.get("spec_name") or "")
241
+ if spec_name == "posts":
242
+ lines.append("1. Record the starter assumptions in decisions.md, or change only what is wrong.")
243
+ lines.append(
244
+ "2. Defaults: one row is one post/request/observation/response; "
245
+ "submitters are the owner and approved agents; evidence is optional; "
246
+ "posted_at is authored or captured time."
247
+ )
248
+ lines.append("3. Use posts to collect messy process feedback, then plan the first observe, orient, decide, or act spec.")
249
+ else:
250
+ lines.append("1. Record the messy process goal and first-loop assumptions in decisions.md.")
251
+ lines.append("2. Identify what is observed, what helps orient, what decision is governed, and what action follows.")
252
+ lines.append("3. Keep the first spec small and note later specs in review.md.")
253
+ lines.append(f"4. Run `airlock-mcp next {workspace}` when the design notes are current.")
238
254
  return "\n".join(lines)
239
255
  records = sample.get("records") if isinstance(sample, dict) else []
240
256
  if not records:
package/src/mcp.mjs CHANGED
@@ -44,10 +44,10 @@ export function handleMcpRequest(message) {
44
44
  },
45
45
  serverInfo: {
46
46
  name: "airlock",
47
- version: "0.1.0",
47
+ version: "0.1.1",
48
48
  },
49
49
  instructions:
50
- "Airlock MCP helps agents build and use Airlock specs. Use airlock_start for orientation or the airlock_* tools to bootstrap, draft, check, summarize, export, and render specs.",
50
+ "Airlock MCP helps agents improve processes with Airlock specs. Use airlock_start for orientation or the airlock_* tools to bootstrap, draft, check, summarize, export, and render specs.",
51
51
  });
52
52
  }
53
53
 
package/src/text.mjs CHANGED
@@ -21,10 +21,15 @@ export function airlockPrompt(project) {
21
21
  const repoName = specsRepoName(project);
22
22
  return `I want to use Airlock MCP to start working with Airlock specs for ${repoName}.
23
23
 
24
- Set up this project as an Airlock specs repo. Use Airlock MCP
25
- spec-building when we need to draft or revise specs. Welcome me,
26
- help me think through real Airlock use cases, and ask only for the missing
27
- decisions. Do not create the first workspace until I choose a path.`;
24
+ Set up this project as an Airlock specs repo. Welcome me by asking what
25
+ process I want to improve. Explain that Airlock works best when we can
26
+ identify the loop around that process: what information comes in, what context
27
+ helps us understand it, what decision needs to be made, and what action happens
28
+ after the decision. Information may come from apps, files, forms, people,
29
+ emails, calls, mail, websites, APIs, data feeds, or physical events. Actions
30
+ may go back through those same places. Ask for the messy version, then help
31
+ turn it into a small first Airlock spec and a plan for more. Do not create the
32
+ first workspace until I choose a path.`;
28
33
  }
29
34
 
30
35
  export function nextSteps(project) {
@@ -40,28 +45,29 @@ ${airlockPrompt(project)
40
45
  .join("\n")}
41
46
 
42
47
  Airlock MCP will offer:
43
- - spec-building with the bundled workbench
44
- - spec use and improvement loops with Airlock Star
45
- - guidance for pulling and pushing governed data through specs
46
- - OODA brainstorming for possible specs
47
- - a blank workspace for a known process
48
- - a posts feedback loop for shared human/agent feedback`;
48
+ - process discovery before choosing a spec pattern
49
+ - spec design with the bundled workbench
50
+ - Airlock operating patterns for OODA loops and separation of duties
51
+ - observe specs for controlled interface ingestion
52
+ - orient specs for proposals, context, scoring, or exception queues
53
+ - decision specs and action specs for governed follow-through`;
49
54
  }
50
55
 
51
56
  export function gettingStartedText(project) {
52
57
  return `# Airlock MCP
53
58
 
54
59
  Airlock MCP is the single installed interface for AI agents working with
55
- Airlock. It helps a person and their agent build specs, pull and push governed data
56
- through specs, and improve Airlock workflows from real use cases.
60
+ Airlock. It helps a person and their agent improve processes by designing
61
+ specs, using specs for governed data movement, and planning OODA loops that
62
+ can be assisted by people or agents.
57
63
 
58
- The Airlock MCP spec-building workbench drafts, checks, revises, imports,
59
- clones, and prepares specs for installed Airlock validation.
64
+ Airlock MCP gives agents two kinds of Airlock expertise:
60
65
 
61
- Airlock Star is the use-and-improve capability inside Airlock MCP. Use it when
62
- someone wants to pull or push governed data through specs, exercise real
63
- Airlock workflows, inspect outputs, or turn field experience into spec
64
- improvements.
66
+ 1. Spec design: draft, check, revise, import, clone, and prepare specs for
67
+ installed Airlock validation.
68
+ 2. Airlock operating patterns: use specs to organize observations, orientation,
69
+ governed decisions, controlled actions, separation of duties, and feedback
70
+ loops.
65
71
 
66
72
  Start in a blank project specs repo such as ${specsRepoName(project)}. Do not
67
73
  work inside the Airlock MCP implementation repo unless you are changing the
@@ -71,16 +77,22 @@ Use this prompt in the blank specs repo:
71
77
 
72
78
  ${airlockPrompt(project)}
73
79
 
74
- After bootstrap, choose the next useful path:
80
+ First ask: What process do you want to improve?
75
81
 
76
- 1. Brainstorm possible specs using the OODA loop.
77
- 2. Start from a known process and create a blank workspace.
78
- 3. Create a posts feedback loop for humans and agents to submit requests,
79
- observations, and responses.
80
- 4. Use Airlock Star with an installed Airlock app to validate specs, load data,
81
- read outputs, plan push/pull workflows, and capture improvements.
82
+ Airlock works best when we can identify the loop around a process:
82
83
 
83
- Create posts only when the user chooses the feedback-loop path.`;
84
+ 1. Observe: what information comes in.
85
+ 2. Orient: what context helps people or agents understand it.
86
+ 3. Decide: what choice needs to be governed.
87
+ 4. Act: what happens after the decision.
88
+
89
+ Information may come from apps, files, forms, people, emails, calls, mail,
90
+ websites, APIs, data feeds, or physical events. Actions may go back through
91
+ those same places. Airlock calls these places interfaces: where the process
92
+ observes from or acts through.
93
+
94
+ Give Codex the messy version of the process. Airlock MCP should help turn it
95
+ into a small first Airlock spec and a plan for more.`;
84
96
  }
85
97
 
86
98
  export function helpText() {
@@ -103,6 +115,7 @@ Options:
103
115
 
104
116
  Airlock MCP is the single installed interface for agents working with Airlock.
105
117
  Spec building is bundled inside that experience.
106
- Airlock Star is the use-and-improve capability inside that experience.
118
+ Airlock operating patterns help connect specs into OODA loops, separation of
119
+ duties, governed decisions, controlled actions, and feedback loops.
107
120
  `;
108
121
  }