Files changed: - .gitignore - CHANGES.md - VERSION - instructions/bootstrap.md - instructions/wiki-ingest/SKILL.md - kb/CONTRACT.md - raw/CONTRACT.md - tools/CONTRACT.md - tools/chemenu/commands/dist_cmd.py - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/new_page.py - tools/chemenu/commands/raw_cmd.py - tools/chemenu/commands/touch.py - tools/chemenu/lint_core.py - tools/chemenu/tests/test_dist_cmd.py - tools/chemenu/tests/test_docs_verify.py - tools/chemenu/tests/test_lint.py - tools/chemenu/tests/test_new_page.py - tools/chemenu/tests/test_provenance.py - tools/chemenu/tests/test_raw_cmd.py - tools/chemenu/tests/test_touch.py - tools/chemenu/tests/test_type_resolver.py - tools/chemenu/type_resolver.py - types/source.md - types/source.schema.yaml
4.2 KiB
type, name, description
| type | name | description |
|---|---|---|
| types/instruction.md | bootstrap | Prepare a fresh clone for work - create the tools venv and publish the skills into the harness directories, which are generated and not committed. |
Bootstrap a fresh clone
.agents/skills/ and .claude/skills/ are generated copies of the skill directories under
instructions/, and both are gitignored. A fresh clone therefore has no skills at all until
they are published: the agent harness will not offer wiki-ingest, wiki-query,
wiki-manage, wiki-lint or wiki-status before this runs.
When to run
- After cloning the repository.
- After
instructions/<name>/SKILL.mdis added, renamed, or edited. - Whenever
tools/wikitool instructions verifyreports a missing or drifted copy.
Steps
-
Create the tool environment (once per clone):
cd tools python3 -m venv .venv .venv/bin/pip install -r requirements.txt cd .. -
Create the ingest inbox.
incoming/(raw/CONTRACT.md "Getting a file in") is gitignored, so a fresh clone does not have it at all - unlikeraw/itself, which is committed and present immediately. It is flat since Gitea #67 (no type subdirectory to create):mkdir -p incomingtools/wikitool doctoronly reports a missing one; it never creates it, so this is a one-off catch-up here the same way step 5 below is for personalization. -
Publish the skills:
tools/wikitool instructions sync -
Verify:
tools/wikitool instructions verifyExpected:
OK. If it reports drift, re-runsync- the source underinstructions/always wins, and a copy is never edited directly. -
Check for personalization. A clone predating the personalization files has no
USER.md/SOUL.md, andtools/wikitool doctorreportspersonalization: FAILfor it. That is a one-off catch-up, not a bootstrap step that repeats: run only the Personalization step (6) of setup-instance.md, not the whole procedure - this clone already has its git repo, author identity and content. A clone that already carries both files needs nothing here. -
Offer to record the environment.
ENVIRONMENT.mdis gitignored, so a fresh clone never has one, and every session in it re-asks which harness is in use, which MCP servers are reachable, and which remotepublishtalks to. CopyENVIRONMENT.md.templatetoENVIRONMENT.md, fill in what is already known from this clone (git remote -v, the harness you are running in,tools/wikitool instructions list), ask the user for the rest, and drop thewikitool:template-unfilledline.Optional, and it stays optional. Skip it and everything still works -
doctorreportsenvironment: absent (optional), not a failure. Skip it silently, though, and the next session pays for it again. Never guess an entry: a wrong remote or an MCP server that is not there is worse than the empty section it replaced, because it gets believed. -
Restart the agent session if it was already running. Harnesses read the skill directories at startup, so skills published mid-session are not picked up.
-
Expect a lingering
session-idWARN. Atools/wikitool doctorrun at this point reportsOKthroughout exceptsession-id: WARN- that check is scoped to the working session, not the clone, so a freshly bootstrapped checkout with noWIKITOOL_SESSION_IDexported yet always shows it. This is expected, not a Bootstrap gap: exporting it here would only be true for this one-off setup run, not for whichever session picks up the actual work next, in a new shell after step 7's restart. Run session-setup.md at the start of that session instead.
Scope
This does not apply to anything under kb/, raw/ or reports/; those are committed and
present immediately after a clone. If the wiki content looks wrong after cloning, that is a
lint question, not a bootstrap one.
This also does not apply to a fresh instance created via tools/wikitool dist export - it has
no git history, no author identity, and no generated indexes yet. That is
setup-instance.md, a longer procedure this one is a single step of.