Files changed: - .gitignore - AGENTS.md - CHANGES.md - INSTALL.md - VERSION - docs/explanation/knowledge-and-commitment.md - docs/explanation/telemetry-and-evaluation.md - docs/explanation/why-gates-are-code.md - docs/how-to/run-the-weekly-review.md - docs/how-to/set-up-the-mcp-server.md - docs/how-to/trace-and-score-sessions.md - docs/how-to/troubleshoot.md - docs/reference/commands/README.md - docs/reference/commands/configuration.md - docs/reference/commands/finding-and-checking.md - docs/reference/commands/git.md - docs/reference/commands/instance-health.md - docs/reference/commands/pages.md - docs/reference/commands/raw-material-and-uploads.md - docs/reference/configuration.md - docs/reference/exit-codes.md - instructions/dev/doc-pull-through.md - instructions/dev/tracker-testing.md - instructions/gates.md - instructions/ingest-queue.md - instructions/mcp-read-server.md - instructions/migrate-corpus.md - instructions/migrations/10.0.0-settings-tiers.md - instructions/setup-instance.md - raw/CONTRACT.md - reports/CONTRACT.md - tools/CONTRACT.md - tools/README.md - tools/bugreport.py - tools/chemenu/cli_contract.py - tools/chemenu/commands/_util.py - tools/chemenu/commands/config_cmd.py - tools/chemenu/commands/docs_verify.py - tools/chemenu/commands/doctor.py - tools/chemenu/commands/export_cmd.py - tools/chemenu/commands/git_publish.py - tools/chemenu/commands/new_page.py - tools/chemenu/commands/review_cmd.py - tools/chemenu/commands/task_cmd.py - tools/chemenu/commands/upload_cmd.py - tools/chemenu/config.py - tools/chemenu/config_shapes.py - tools/chemenu/legacy_settings.py - tools/chemenu/mcp/__main__.py - tools/chemenu/mcp/server.py - tools/chemenu/reference_doc.py - tools/chemenu/review.py - tools/chemenu/settings.py - tools/chemenu/tasks/__init__.py - tools/chemenu/tasks/caldav.py - tools/chemenu/tasks/config.py - tools/chemenu/tasks/superproductivity.py - tools/chemenu/telemetry/policy.py - tools/chemenu/tests/conftest.py - tools/chemenu/tests/record_sp_fixtures.py - tools/chemenu/tests/test_bugreport.py - tools/chemenu/tests/test_caldav.py - tools/chemenu/tests/test_config_shapes.py - tools/chemenu/tests/test_doctor.py - tools/chemenu/tests/test_git_publish.py - tools/chemenu/tests/test_legacy_settings.py - tools/chemenu/tests/test_mcp_server.py - tools/chemenu/tests/test_new_page.py - tools/chemenu/tests/test_review.py - tools/chemenu/tests/test_settings.py - tools/chemenu/tests/test_sp_recorded.py - tools/chemenu/tests/test_superproductivity.py - tools/chemenu/tests/test_task_cmd.py - tools/chemenu/tests/test_tasks_config.py - tools/chemenu/tests/test_telemetry_policy.py - tools/chemenu/tests/test_tracker_live.py - tools/chemenu/tests/test_upload.py - tools/chemenu/tests/tracker_live.py - tools/chemenu/upload.py Co-Authored-By: Claude Code <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SnAJ7Z3CpVD3PRbN73QtU2
5.0 KiB
5.0 KiB
Configuration
Writing the tiered settings in wikitool.json and .wikitool-local.json.
Contents
config set
Set one value of the tiered settings, in the file its tier names.
Synopsis
wikitool config set <section>.<field> <value>wikitool config set <section>.<field> --ref <name|op://vault/item/field>
Options
Arguments:
key <section>.<field> [required]
value The plain value; a string as given, anything else as JSON.
Options:
--ref <str> A reference instead of a value: <name> or
op://<vault>/<item>/<field>.
-h, --help Show this message and exit.
Examples
tools/wikitool config set tasks.stalled_waiting_days 14
tools/wikitool config set caldav.app_password --ref caldav_app_password
tools/wikitool config set caldav.username --ref op://Chemenu/caldav/username
Behaviour
- Writes a plain value of a field of tier
instanceintowikitool.json, and one of tiercheckout- a private field's included - into.wikitool-local.json. - With
--ref, writes a reference instead of a value intowikitool.json:<name>resolves throughWIKITOOL_SECRET_<NAME>, then the secrets file in the user's configuration directory;op://<vault>/<item>/<field>resolves through the 1Password CLI. Only a secret or private field takes one. - Removes the same key from the other file, so a value never has two places, and says so.
- Creates
wikitool.jsonwith a freshinstance_idthe first time it writes anything; the secrets file is found by that id. - Checks both files as they would stand after the write against every registered section, and writes nothing when that fails.
- Prints the key and the file it wrote, never the value. Resolves no reference.
Properties
- Changes files: yes
- Idempotent: yes
- Atomic: Each file is replaced in one rename; both are checked before either is written
- Counts toward the session call budget: yes
- Can reach the network: no
Exit codes
0- success1- The key names no registered section or field, or is not<section>.<field>1- A plain value given for a field of tiersecret1---refgiven for a field that takes a plain value, or a malformed reference1- The value is not of the field's type, or the files would not pass their check afterwards42- The field names a program to run or affects a gate
See also
wikitool doctor- whether both files pass and every reference resolvesdocs/reference/configuration.md- the files, the tiers and the referencesdocs/how-to/use-1password-for-settings.md- setting 1Password up as the source
config migrate
Move the settings out of the per-feature files of earlier versions into the tiered settings.
Synopsis
wikitool config migrate
Options
-h, --help Show this message and exit.
Examples
tools/wikitool config migrate
Behaviour
- Moves the four per-feature settings files of earlier versions - telemetry, remotes, upload and the task tracker, each named in the migration document - into the sections
telemetry,remotes,upload, andtasks,superproductivityandcaldav: each value into the file its field's tier names, a secret's value into the secrets file with only a reference inwikitool.json. - Every setting keeps its effective value, defaults included: the old content is read with the same checks the new sections use, and a field the old file did not set is not written.
- Run once per checkout, since the old files and
.wikitool-local.jsonbelong to one checkout..wikitool-tools.jsonstays as it is. - Prints each key and the file it went to, plus anything the old file held that was not read before and is not carried over - never a value.
- A second run, or a run with no old file, prints that there is nothing to move and changes no file.
- A key the target files already hold with a different value stops the move before anything is written: decide which one stands, remove the other, run again.
Properties
- Changes files: yes
- Idempotent: yes
- Atomic: Everything is computed and checked in memory first; the secrets file,
wikitool.jsonand.wikitool-local.jsonare each replaced in one rename, read back and checked, and only then are the old files removed. Any failure before that puts every target back to the bytes it had and leaves the old files as they were - Counts toward the session call budget: yes
- Can reach the network: no
Exit codes
0- success1- An old file does not pass the check the new section applies, a target key holds a different value, or the files would not pass their check afterwards
See also
wikitool doctor- reports every leftover old file as aFAILdocs/reference/configuration.md- the sections the files becameinstructions/migrations/10.0.0-settings-tiers.md- the migration this command belongs to