Explain how to move the framework submodule with
git submodule update --init --remote --recursive framework, what to run
afterwards, and how to bring AGENTS.md up to date with
framework/templates/AGENTS-template.md.
Gitea stores a page whose name has a hyphen under an escaped address
(Getting-started.-), which the shared publish workflow does not match, so
the second run tried to create the page again and got HTTP 400. Use
GettingStarted and SshAndTokens, as the wiki of TirSystem/github-action
does.
The repository is now TirSystem-BashScript/repo-foundry on Gitea and GitHub.
Update the clone URL, the example paths and the wiki links. Old links keep
working through the redirects of both hosts, so documents that only cite
commits and milestones are left as they are.
The real context of the Quality run on a push is
"Quality / quality (push)", not the nested job name. Also store the file
with LF line endings, as .editorconfig requires.
Add a wiki/ folder with a .publish marker for the shared Publish wiki
workflow, a Quality workflow (shellcheck and shfmt through the shared
reusable workflow) and a manual Release workflow that builds the release
page from CHANGELOG.md.
Set switch_case_indent for *.sh in .editorconfig so shfmt accepts the
existing case layout.
Call the reusable quality-check workflow of TirSystem/github-action for the
shell files: shellcheck and shfmt -d. Add switch_case_indent to the
[*.sh] section of .editorconfig so that shfmt, which reads it, agrees with
the style the project already uses (shfmt -i 2 -ci in tests/run-tests.sh).
Set VERSION in src/lib/constants.sh to 0.3.2 and the --version check in
tests/test-security.sh to match. This is task 5 of MIL-009, the Git excludes
step. Release v0.3.2 is tagged on Gitea from the merge commit once the pull
request is merged.
Refs #69
Task: MIL-009#5
Add tests for the step that excludes .claude, .agents and AGENTS.md from git
in the new project: the three paths are ignored and absent from git status
after a run, while framework, .gitmodules and docs/artifact-registry.md stay
visible; no .gitignore is written and nothing is committed; a second run
writes each entry and the comment once and keeps the existing lines, also
when the file has no final newline; nothing is written for a path git
already ignores; a tracked path stays tracked and is named; the step is
skipped without the framework; the dry-run plan lists it.
The existing .env exclusion test also checks its comment line.
Refs #68
Task: MIL-009#4
Add the "Git excludes" step to the overview, the sample plan, the numbered
run steps and a new section: which paths are excluded and why, that nothing
is committed or changed in a tracked file, that the entries live in
.git/info/exclude and so are not shared with a clone, what happens to a path
git already tracks, and how to track one anyway. Add the tracked-path case to
the error table and the new roles of git.sh and framework.sh to the code
layout.
Closes#67
After the templates are copied, create-project.sh adds /.claude, /.agents and
/AGENTS.md to .git/info/exclude of the new project as its own step, "Git
excludes". No .gitignore or tracked file changes and nothing is committed.
The step is skipped when the framework steps are skipped, and a path git
already tracks stays tracked and is named in the step.
The .git/info/exclude code of exclude_env_file moves into the shared helper
exclude_from_git (git.sh), which both now use; the .env behavior is unchanged.
Refs #66
Task: MIL-009#2
S02 gave the Go in chat on 2026-10-08 and waived the PlantUML render check
(no PlantUML server is configured). Add the review record RC-032, set the
latest Version History rows of MIL-009 and the changed documents to Accepted
and the rows before them to Deprecated, and record the review in the
traceability matrix.
Add the phase MIL-009 (proposed 2026-12-21 to 2026-12-23): after the
framework is installed, the new project excludes .claude, .agents and
AGENTS.md through its own .git/info/exclude, so no tracked file changes.
The analysis and design documents agree with it: Business Case objective 5,
US-001.03, UC-001 (postcondition, step 9, extension 9f, a rule), OC-001 (P15
and two exceptions), SD-001, DCD-001 and DCD-002 (excludeFromGit,
trackedPaths), and the Framework Setup and Template definitions in DM-001,
DM-002 and the dictionary.
Refs #65
Refs #66
Refs #67
Refs #68
Refs #69
The `.env` (credentials) section now points to howto/create-access-tokens.md
next to the Token permissions reference, so a reader who needs a token finds
the step-by-step guide where the credentials are described.
howto/create-access-tokens.md walks through creating the Gitea access token
and the GitHub classic personal access token that RepoFoundry needs, with nine
illustrations in howto/img/, how to hand the tokens to the script, how to keep
them safe and what the script's token errors mean.
The README's Token permissions section now links to it.
- RC-031 is Accepted with a Go verdict and no open action items
- MIL-008 and the documents it changes are set to Accepted (previous rows
Deprecated): BC-001, US-001, UC-001, OC-001, SD-001, DCD-001, DCD-002,
DM-001, DM-002, MIL-003, PP-001 and TM-001
The version is raised to 0.3.1 and release v0.3.1 is tagged on Gitea from the
merge commit once the pull request is merged. MIL-008 gets task 4 and
criterion 7; RC-031 counts seven criteria.
create_local_project no longer adds a github remote, with or without GitHub:
a push to origin reaches GitHub through the push mirror. A github remote that
already exists, such as one made by an earlier version, is left as it is, and
a different origin is still refused.
- Remove github_remote_url, which nothing else used
- README describes the one remote and how to remove an old github remote
- Tests: origin is the only remote with and without GitHub, no GitHub address
in .git/config, and an existing github remote is kept
Task: MIL-008#1
Task: MIL-008#2
Task: MIL-008#3
A project created by the script had two remotes, origin (Gitea) and github.
Gitea already pushes to GitHub through the push mirror, so the second remote
is not needed and invites a push that goes around the mirror.
- MIL-008 and its review record RC-031
- Objective 4, US-001.03, UC-001 step 8, OC-001 P9, SD-001, DCD-001, DCD-002,
DM-001 and DM-002 describe one remote; MIL-003 criterion 1 and task 1 follow
- Project plan and traceability matrix list MIL-008 and RC-031
- Review records RC-022 to RC-030 are Accepted
- The documents they review are set to Accepted (previous rows Deprecated)
- RC-028 and RC-029: Go-with-conditions becomes Go; the two action items are closed
- OC-001, SD-001 and DCD-001 carry a note that the UC-002 documents supersede the startProjectCreation signature