Submit exploration
You are authoring one explorer's draft within an inquiry. Other explorers' drafts are hidden from you (and vice versa) until the barrier releases. That isolation is the feature — treat it as such.
Before drafting — verify the inquiry
- Ask the user for the inquiry id if not given.
- Call
vault_searchwithtype: inquiryand the id's keywords, or callvault_edgeson the inquiry id to confirm it exists. - Check the inquiry's status:
open→ good, proceed.ready_for_synthesis→ the barrier already released; new explorations don't count. Ask the user whether to abandon or invokesynthesizeinstead.resolved/abandoned→ the inquiry is over; do not submit.
- Read
inquiries/<inquiry-id>/inquiry.mdfor the framing, constraints, out-of-scope, and evaluation criteria. Do NOT read any existing exploration files — isolation invariant.
Frontmatter shape
---
id: <explorer-name>-<short-slug> # unique within the inquiry
type: exploration
status: draft
author: <explorer name>
inquiry: <inquiry-id>
created: <YYYY-MM-DD>
submitted: null
---
Leave submitted: null until the user says the draft is ready. When
they do, set status: submitted, submitted: <today>. Submission
freezes the content — subsequent edits become an anti-pattern.
Filename
Write to inquiries/<inquiry-id>/explorations/<id>.md. Conventional
id format: <author>-<slug> (e.g. alex-token-bucket.md). One file
per explorer.
Body — answer the framing, on your own
Structure is flexible; clarity over form. Cover:
- Your proposed approach. One paragraph up front.
- Why this approach. Reason against the framing's constraints.
- What it looks like. Concrete enough that a reader can evaluate it.
- Cost and risk. Honest assessment. Cheap wins lose credibility.
- What you considered and set aside. Two or three alternatives, briefly.
- What you're unsure about. Naming uncertainty helps the synthesis weigh takes against each other.
Write as if no one else is writing an exploration — don't try to carve a niche against what you imagine others are doing. Good exploration presumes independence.
Drafting workflow
- Verify the inquiry (see above). Do not peek at other explorations.
- Read the framing. Ask clarifying questions of the user if the framing is ambiguous — but don't ask about other explorers.
- Propose frontmatter + body as a diff with the filename.
- Write on approval.
- Commit:
git add inquiries/<inquiry-id>/explorations/<id>.md && git commit -m "Explore: <one-line>".
Submission
When the user says the draft is ready to submit (not just save):
- Update frontmatter:
status: submitted,submitted: <today>. - Commit separately:
git commit -m "Submit exploration: <id>". - Tell the user that submission freezes the content (content hash recorded); further edits become a withdraw+resubmit operation.
Withdraw
If the user decides an exploration shouldn't be included in the synthesis:
- Update frontmatter:
status: withdrawn, add a short reason in the body. - Commit.
This is an explicit, logged act. The vault has no force_withdraw
that hides the attempt — withdrawals stay in history.
Do not
- Do not read other explorations while the inquiry is
open. Not even "just to see". The vault reader filters these for you; don't go around it. - Do not submit a "meta exploration" that synthesizes others' work
before the barrier releases. That's
synthesize, and it comes later. - Do not edit a submitted exploration. Withdraw + resubmit if needed; the history stays visible.