Files changed: - .gitattributes - .gitea/workflows/converters.yml - .gitea/workflows/release.yml - .gitignore - CHANGES.md - VERSION - docs/dev/development.md - instructions/dev/dev-setup.md - instructions/dev/publish-and-ci.md - instructions/dev/testing-conventions.md - testfiles/README.md - testfiles/mail/github-outlook.msg - testfiles/mail/github-roundcube.eml - testfiles/mail/gog-outlook.msg - testfiles/mail/gog-roundcube.eml - testfiles/mail/gog-roundcube.eml.expect - testfiles/mail/tldr-outlook.msg - testfiles/mail/tldr-roundcube.eml - testfiles/office/excel-artificial.xlsx - testfiles/office/excel-business.xlsx - testfiles/office/excel-business.xlsx.expect - testfiles/office/excel-science.xlsx - testfiles/office/pptx-baseline.pptx - testfiles/office/pptx-master.pptx - testfiles/office/pptx-objects.pptx - testfiles/office/word-complex.docx - testfiles/office/word-simple.docx - testfiles/pdf/einstein-dissertation.pdf - testfiles/pdf/ifg.pdf - testfiles/pdf/nist-ai-rmf.pdf - testfiles/pdf/nist-ssdf-genai.pdf - testfiles/zip/archive.zip - tools/chemenu/tests/test_raw_derive_testfiles.py Co-Authored-By: Claude Code <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
5.1 KiB
type, name, description
| type | name | description |
|---|---|---|
| types/instruction.md | dev-setup | Set up a clone of the origin repository for stack development - preflight, skills, the demo corpus and its persona, telemetry on - and use dist export as a build and test tool, never as a way to install an instance. |
Set up a development checkout of the stack
A clone of the origin repository is where the stack is developed. It is not an instance: it
carries a demo corpus that documents the stack itself, a demo persona in USER.md/SOUL.md, the
development material under instructions/dev/ and commonplace/, and no
.wikitool-release.json. Instances are installed from releases
(setup-instance.md); nothing here produces one.
When to run
- A fresh clone of the origin repository, before the first stack-dev session in it.
- A clone that was moved, or whose
tools/.venvwas removed - only step 2 again. - Before testing a change to the install path itself (
setup-instance.md, the preflight, the release workflow) - step 5.
Steps
-
Clone the origin repository. The tree is complete as checked out:
kb/,raw/,USER.md,SOUL.mdand the filledkb/CONVENTIONS.mdare committed here, unlike in an instance. -
Run bootstrap.md - the preflight, then
tools/wikitool instructions sync. That publishesstack-dev,stack-buildandstack-closealong with the content skills; all three exist only in this repository. -
Record the environment (bootstrap.md step 5). Here it is worth the minute: which harness, that
gitea-mcpreaches the tracker and CI, which remotepublishtalks to. Every stack-dev session reads it instead of asking. -
Know what differs from an instance before relying on a default.
Here In an instance No .wikitool-release.json: telemetry is on - the traces are the stack's measuring instrument (telemetry-and-evaluation.md)Telemetry is off until the operator turns it on USER.md/SOUL.mddescribe a demo operator and personaWritten by the operator during setup tools/wikitool dist upgraderefuses: there is no stamp to compare against. The checkout followsmainwithtools/wikitool syncUpdated with dist upgrade --latestinstructions/dev/,docs/dev/,commonplace/and.gitea/are presentNever shipped testfiles/may hold the private test corpus (step 6)Never present -
Use
dist exportas a build and test tool. It writes exactly the tree a release ships, so it is how a change to the shipped surface is looked at before it is released:tools/wikitool dist export <empty scratch folder> --dry-run tools/wikitool dist export <empty scratch folder>To replay the install path the way a user meets it, build the release tarball from that tree the way
.gitea/workflows/release.ymldoes (one top-level folder, a.sha256beside it) and start the tree'stools/preflight.shas the asset, from an empty folder, with--archive <tarball>- the step "The distribution works as a fresh instance" in.gitea/workflows/ci.ymlis that replay and the reference for it. Keep scratch trees outside this checkout. -
Clone the private test corpus, if you have access. The real documents the converters are tested against, and the harness that runs them, are a repository of their own and not part of this one:
git clone ssh://git@gitea.nehmer.net:10101/torben/chemenu-testfiles.git testfiles cd tools && .venv/bin/python -m pytest -c pytest.ini ../testfiles/harnessThe clone sits in
testfiles/, which.gitignoreexcludes; it is deliberately not a submodule. Without access nothing breaks:pytestintools/needs none of it, and a session that changes a converter leaves the real-document run to theconvertersworkflow (publish-and-ci.md step 3). What is missing without the clone is the local run of that harness, nothing else. The corpus holds files that may not be public, so nothing from it is copied into this repository, an issue or a bug report without its README saying the file could be public.
Decision points
- Asked to set up an instance from this checkout (
dist exportinto the user's folder, or a clone that "becomes" their wiki)? Neither is an install path. An instance is installed from a release, by setup-instance.md; a stack state that has no release yet is released first, or tested with the replay in step 5 and thrown away. - The demo corpus is in the way of a test? Do not delete or rewrite corpus content to make room: corpus-policy.md says what may be changed and how. Use a scratch export (step 5) for a clean tree instead.
Scope
Not for operating an instance, and not for the release workflow itself (docs/dev/development.md for
humans, version-parts.md for the version part). Not shipped: dist export
prunes instructions/dev/ wholesale.