@miadi/inquiry-weave
v0.12.2
Published
Relate and sync IAIP inquiry artefacts, their GitHub issues, and miadi-chronicle episodes. Creates vessels and relations only — never inquiry content.
Readme
@miadi/inquiry-weave
inquiry-weave keeps three identities in relation:
- an inquiry artefact in the IAIP artefact shelf;
- its GitHub issue;
- the Chronicle episode that carries it.
It creates issues with the portable gh CLI, records both shores of the
relation, syncs the artefact into the episode, and registers the weave. It does
not depend on private host scripts or private cache folders.
Install
npm install -g @miadi/inquiry-weave passages
gh auth statuspassages owns canonical episode birth through mkepisode. inquiry-weave
owns issue/artefact/episode relation and offers a compatibility episode
scaffold for combined one-command inquiry flows.
Environment
export MIADI_CHRONICLE_ROOT=/srv/miadi/episodes/miadi-chronicle
export MIADI_INQUIRY_DIR=/a/src/IAIP/prototypes/artefacts
export MIADI_INQUIRY_GITHUB_REPO=miadisabelle/Etuaptmumk-RSM
export MIADI_CHRONICLE_MW_URL="${MIADI_CHRONICLE_MW_URL:-http://127.0.0.1:8040}"| Flag | Environment |
| --- | --- |
| --chronicle-root | MIADI_CHRONICLE_ROOT |
| --inquiry-root | MIADI_INQUIRY_DIR |
| --repo | MIADI_INQUIRY_GITHUB_REPO |
| --mw-url | MIADI_CHRONICLE_MW_URL |
| --stories-root | MIADI_STORIES_ROOT |
MIADI_INQUIRY_ROOT, INQUIRY_ROOT, and MIADI_INQUIRY_REPO remain fallback
aliases for older environments.
MIADI_CHRONICLE_MW_URL is the wheel variable of record and is read first
everywhere. MW_API_URL_OVERRIDE and MW_API_URL are legacy fallbacks, read
only when it is unset.
Create an issue and weave the current folder
From an existing inquiry artefact:
cd "$MIADI_INQUIRY_DIR/ep133-honcho-eval"
inquiry-weave inquire \
--artefact . \
--episode 133 \
--title "Honcho evaluation inquiry"This creates the issue in MIADI_INQUIRY_GITHUB_REPO, writes its identity to
.weave.yaml, writes the matching relation to
<episode>/inquiry/weave.yaml, and adds the episode backlink to AGENTS.md.
Before those writes, an unprefixed folder is renamed to
ep<episode-number>-<existing-folder-name>. The prefix is mandatory once the
episode identity is known; a destination collision stops the command.
By default, the artefact's Markdown, text, YAML, and JSON documents become the
issue body. Generated weave metadata, AGENTS.md, hidden directories, and
binary files are excluded. Use --body <text> or --body-file <path> to
override that derived body.
Create a new inquiry vessel and issue
inquiry-weave inquire \
--slug honcho-eval \
--episode 133 \
--title "Honcho evaluation inquiry"The new directory is named ep<NNN>-<slug>-<YYMMDD>-<uuid> beneath
MIADI_INQUIRY_DIR. It begins with relation metadata only; inquiry content is
written afterward by the people and practices conducting the inquiry.
Create the issue and a new episode together
Use an existing artefact:
inquiry-weave inquire \
--artefact . \
--new-episode honcho-eval-adequate-memories \
--title "Honcho evaluation inquiry"Or create the artefact vessel, issue, episode, and weave in one command:
inquiry-weave inquire \
--slug honcho-eval \
--new-episode honcho-eval-adequate-memories \
--title "Honcho evaluation inquiry"Both combined forms also sync the artefact snapshot into the new episode. When
MIADI_CHRONICLE_MW_URL (or --mw-url) is present, the command registers the episode card
and writes its .mw-registration.json receipt in the same run.
The combined form uses inquiry-weave's compatibility scaffold. For a fully
governed episode with an explicit goal and references, create it first with
mkepisode, then use inquire --episode:
mkepisode \
-n 133 \
-t "honcho eval adequate memories" \
-g "Establish adequate memories for the honcho evaluation." \
-r "jgwill/Miadi#133"Weave an issue that already exists
inquiry-weave relate \
--artefact "$MIADI_INQUIRY_DIR/ep133-honcho-eval" \
--episode 133 \
--issue jgwill/Miadi#133To weave the artefact and its already-recorded issue into a newly scaffolded episode:
inquiry-weave promote \
--artefact "$MIADI_INQUIRY_DIR/ep133-honcho-eval" \
--new-episode honcho-eval-adequate-memoriesSync, inspect, and register
inquiry-weave sync --episode 133 --all
inquiry-weave status --episode 133
inquiry-weave register --episode 133Sync is one-way from the IAIP artefact to the episode snapshot. The source artefact remains authoritative. Registration projects relation metadata to the Chronicle medicine wheel; it does not move inquiry content.
--dry-run previews mutating commands without filesystem, GitHub, or
medicine-wheel writes. --no-issue creates or relates the artefact without
opening GitHub.
Command surface
inquiry-weave inquire (--episode <ref> | --new-episode <slug>)
(--artefact <path> | --slug <new-artefact-slug>)
[--title <text>] [--body <text> | --body-file <path>]
[--repo owner/repo] [--no-issue]
inquiry-weave relate --artefact <path> --episode <ref> [--issue owner/repo#N]
inquiry-weave promote --artefact <path> (--episode <ref> | --new-episode <slug>)
inquiry-weave sync (--artefact <path> [--episode <ref>] | --episode <ref> --all)
inquiry-weave status (--episode <ref> | --artefact <path>) [--json]
inquiry-weave register (--episode <ref> | --artefact <path>) [--dry-run]
inquiry-weave lineage --from <ref> --to <ref> --relation <sentence>
[--kind continues-from|relates-to] [--reverse]
inquiry-weave catalog [--series <name>] [--json]
inquiry-weave stories [--stories-root <dir>] [--json]
inquiry-weave resolve <miadi-chronicle:...> [--verify] [--json]Exit codes are 0 success, 1 operational failure, and 2 usage or identity
resolution failure.
Relation records
The artefact owns .weave.yaml; the episode owns inquiry/weave.yaml, which
also records sync hashes and counts. These files are authoritative. The
medicine wheel is their registered projection.
Chronicle attention through MCP
inquiry-weave-mcp exposes the same ATTENTION read/answer service used by the
Miadi API and passages attention answer:
chronicle_attention_list— open items across the Chronicle, optionally one episode;chronicle_attention_get— one item plus safe excerpts from episode-localdepth[]references;chronicle_attention_answer— one explicit answer, atomically written and projected.
Set MIADI_CHRONICLE_ROOT. Set MIADI_CHRONICLE_MW_URL (the legacy
MW_API_URL_OVERRIDE / MW_API_URL are read only if it is unset) to
the one Chronicle wheel. With no wheel URL, an answer still lands in the
authoritative file and the tool returns pending; it never falls back to a
repo-local wheel. See jgwill/Miadi#631.
Episode lineage
inquiry-weave lineage \
--from 132 \
--to 133 \
--kind relates-to \
--relation "The evaluation carries the prior memory contract into practice." \
--reverse \
--dry-runDrop --dry-run to write both shores. The relation sentence must read
truthfully from both episode rooms.
Development
pnpm --filter @miadi/inquiry-weave build
pnpm --filter @miadi/inquiry-weave testTests use temporary roots and a fake gh executable. They make no network or
real GitHub calls.
🌸 passages opens the governed episode vessel. inquiry-weave ties the
living inquiry, its issue, and that episode together without pretending they
are the same thing.
