Replace script/update-policy with script/write-upstream-policy-files and script/commit-upstream-policy-files (closes #165) #166

Open
clawbot wants to merge 12 commits from issue-165-install-scripts into next
pull from: issue-165-install-scripts
12 Commits
Author SHA1 Message Date
sneak da50899b23 Drop the test timeout from the Dockerfile; date the changed documents
check / check (push) Successful in 59s
Time limits go only in the CI workflow, so the test phase runs
test/commit-upstream-policy-files.sh with no timeout. REPO_POLICIES.md
and both checklists change in this PR, so their last_modified is
2026-11-11.

Model: opus-5-5
2026-11-11 01:11:39 +00:00
sneak f0ec2f38a8 Rename the scripts that update the policy files
check / check (push) Canceled after 0s
script/commit-current-upstream-policy-docs is now
script/write-upstream-policy-files: it writes the policy files and
commits nothing. script/update-policy is now
script/commit-upstream-policy-files, and make update-policy is now
make commit-upstream-policy-files. test/update-policy.sh follows.
Behaviour is unchanged.

Model: opus-5-5
2026-11-11 00:47:30 +00:00
clawbot ed60414378 Rename script/fetch-policy to script/commit-current-upstream-policy-docs
check / check (push) Canceled after 0s
sneak, on the PR: the script does more than fetch, and short names are
not wanted. The make target, the test names, the variables and the
messages take the new name. Behaviour is unchanged.

Model: opus-5-5
2026-11-11 00:00:28 +00:00
clawbot 917fe4bc1d Rename script/install to script/fetch-policy
check / check (push) Canceled after 0s
By convention, and in scripts-to-rule-them-all, script/install installs
the program itself. This script fetches the shared policy files into a
repo. The make target, the test names and the messages take the new
name. Behaviour is unchanged.

Model: opus-5-5
2026-11-10 20:19:00 +00:00
clawbot ff42f4013d Correct the kept-lines bullet; test .editorconfig with no own line
check / check (push) Successful in 1m1s
REPO_POLICIES said an ignore file lacking the closing comment keeps every
line the canonical file has never held; blank lines and comments are
dropped, so it now says entries, in a bullet of its own.

A new scenario covers an .editorconfig lacking the comment with no line
of its own, which the script replaces.

Model: opus-5-5
2026-11-09 22:31:17 +00:00
clawbot 5d82424a20 REPO_POLICIES: say which lines an ignore file lacking the comment keeps
check / check (push) Failing after 49s
Model: opus-5-5
2026-11-09 21:46:41 +00:00
clawbot 8a25e502f4 script/install: do not stop on a missing closing comment
check / check (push) Successful in 55s
A .gitignore or .dockerignore lacking the canonical last line no longer
stops the script: each line the canonical file has never held goes
below the fetched content. An .editorconfig lacking it is replaced,
unless it has such a line, which stops the script.

The stub curl now writes files with no execute bit, as a real download
does, so the tests exercise the mode the script sets.

Model: opus-5-5
2026-11-09 21:34:29 +00:00
clawbot 9f83f3c1b1 README: script/install stops when its target is this repo
check / check (push) Successful in 54s
Started from this repo with a path, the script writes into that clone,
so "stops when run here" was false.

Model: opus-5-5
2026-11-09 20:46:27 +00:00
clawbot e89fc86adc Drop make install from the required targets; test three more stops
check / check (push) Successful in 48s
The install target stays in this repo's Makefile only. sneak/vaultik
already has an install target with another meaning, and every repo
still gets script/install.

Tests: a repo's own script/update-policy stops the script, and a repo
whose only JavaScript source is a .js or .mjs file gets the JavaScript
style guide.

Model: opus-5-5
2026-11-09 20:04:01 +00:00
clawbot 76b75fa79f script/install: write every listed file the repo lacks
check / check (push) Successful in 48s
A listed file the repo lacks is now written whole, with no keep rule.
A prompts/NAME.md goes to docs/NAME.md unless the repo keeps it at
NAME.md, and any other file goes to its own path. A language's files
are skipped when git tracks no source file of that language.

A listed path git ignores now stops the script before it writes.

README bullets split into short sentences, and a false sentence about
template repos deleted.

Model: opus-5-5
2026-11-09 19:38:41 +00:00
clawbot f4275b9ac0 script/install: stop on a repo's own script of the same name
check / check (push) Successful in 26s
script/install replaced any tracked script/install or
script/update-policy in the target, including a repo's own unrelated
script. It now stops when such a file has a line the canonical file
has never held. An older shared copy is still replaced.

The padded file in the self-replacement test is now an earlier
canonical version, so the new stop does not catch it.

Model: opus-5-5
2026-11-09 18:49:16 +00:00
clawbot 454f3410a1 Add script/install; script/update-policy runs it and commits (closes #165)
check / check (push) Successful in 31s
script/install fetches the policy files from prompts over HTTP and
writes them into a repo, installing itself and script/update-policy
there. script/update-policy fetches the current script/install, runs
it on its own repo and commits without pushing. The file list and the
rules for keeping a repo's own entries move to script/install.

Model: opus-5-5
2026-11-09 18:32:46 +00:00