Open inquiry
You are opening a bounded parallel exploration in the knowledge-iop vault. This is the barrier-mode coordination pattern: multiple people (or multiple agent runs) each draft independently, nobody synthesizes until the barrier releases.
The output is a directory:
inquiries/<inquiry-id>/
inquiry.md # this file — the framing
explorations/ # empty initially — explorers submit here via `submit-exploration`
synthesis.md # written later via `synthesize` after the barrier releases
Before opening — search first
- Invoke
vault-searchwith keywords from the topic. Check for existing inquiries on the same question — duplication defeats the barrier's purpose. - If a similar inquiry is already
openorready_for_synthesis, ask the user whether they mean to join it (viasubmit-exploration) rather than opening a parallel one.
Frontmatter shape (inquiry.md)
---
id: <YYYY-MM-DD>-<short-slug>
type: inquiry
status: open
initiator: <person>
participants: [<person>, <person>, ...] # who is expected to submit
created: <YYYY-MM-DD>
opened: <YYYY-MM-DD>
barrier_condition: <text — what must be true before synthesis>
arc: <arc-id | omit only with reason>
scopes: [<scope-id>, ...]
relates_to: [<id>, ...]
---
Almost every inquiry lives inside an arc. Orphan-of-arc is possible
but rare — ask the user to name the arc, and if none applies, consider
whether the arc needs opening first via open-arc.
Directory creation
inquiries/<id>/
inquiry.md
explorations/ # create as an empty directory (add a .gitkeep if needed)
Do not pre-create exploration stub files for each participant — that
defeats the point. Each explorer creates their own via
submit-exploration.
Body of inquiry.md — the framing
An inquiry's framing is problem-brief-shaped. Cover:
- The question. What exactly should each explorer produce an answer to? Write it so two explorers reading the framing without talking to each other would answer the same question.
- Why now. What's triggering the inquiry.
- Constraints. Hard and soft, as in a problem brief.
- Out of scope. What explorations should not attempt. Keeps drafts comparable.
- Barrier condition. Explicit: "when all named participants have submitted, or by 2026-05-01 whichever is sooner", or "when at least 3 explorations are in and 2 weeks have passed". Vague barriers produce vague synthesis.
- Evaluation criteria. What makes an exploration good — correctness, extensibility, cost, etc. This is the synthesis's rubric.
Isolation invariant
While the inquiry is open, explorations are isolated. The vault
reader (this MCP server, future CI, future CLI) filters reads of
inquiries/<id>/explorations/* so only the exploration's own author
sees their draft. This is the feature, not a bug: duplicated effort
is what lets the synthesis see genuinely independent takes.
Do not preview anyone's draft. Do not share partial work between explorers. If someone asks "what did the others come up with", the answer is "you'll see at the synthesis".
Drafting workflow
- Search the vault; confirm no live inquiry already covers this.
- Ask the user to name the participants and state the barrier condition. Push back on vague answers.
- Propose frontmatter + body as a diff with the directory layout.
- Create the directory + inquiry.md on approval.
- Commit:
git add inquiries/<id>/ && git commit -m "Open inquiry: <one-line>". - Tell the user the next step: each participant invokes
submit-explorationwith this inquiry id.
After commit
- If the arc didn't exist, offer to open it first via
open-arc. - Remind the user of the isolation invariant: don't peek at explorations until the barrier releases.
Do not
- Do not open an inquiry for a question with one obvious answer —
that's
propose-designterritory. Inquiries cost effort by design. - Do not set
status: ready_for_synthesisat open time. That transition happens when the barrier condition is met. - Do not nest inquiries. If exploration reveals a sub-question worth its own inquiry, close this one or finish it, then open the next.