All placeholders in this template follow the {{PLACEHOLDER}}
pattern. After cloning, replace them with your project-specific values.
just initThis interactively prompts for all values, replaces every placeholder, validates the result, and runs k9-svc checks if available.
# If you prefer manual replacement (run from repo root)
sed -i 's/Jonathan D.A. Jewell/Jane Doe/g' $(grep -rl 'Jonathan D.A. Jewell' .)
sed -i 's/j.d.a.jewell@open.ac.uk/jane@example.org/g' $(grep -rl 'j.d.a.jewell@open.ac.uk' .)
sed -i 's/hyperpolymath/my-org/g' $(grep -rl 'hyperpolymath' .)
sed -i 's/cloudguard-cli/my-project/g' $(grep -rl 'cloudguard-cli' .)
sed -i 's/CLOUDGUARD_CLI/MY_PROJECT/g' $(grep -rl 'CLOUDGUARD_CLI' .)
sed -i 's/cloudguard_cli/my_project/g' $(grep -rl 'cloudguard_cli' .)
sed -i 's/cloudguard-cli/my-project/g' $(grep -rl 'cloudguard-cli' .)
sed -i 's/github.com/github.com/g' $(grep -rl 'github.com' .)
sed -i "s/2026/$(date +%Y)/g" $(grep -rl '2026' .)
sed -i "s/2026-03-02/$(date +%Y-%m-%d)/g" $(grep -rl '2026-03-02' .)| Placeholder | Description | Example | Files |
|---|---|---|---|
|
Full legal name |
|
SPDX headers (all files), MAINTAINERS.md, .mailmap, .reuse/dep5, docs/AI-CONVENTIONS.md |
|
Primary contact email |
|
SPDX headers (all files), .mailmap, .reuse/dep5, .well-known/humans.txt |
|
Previous/secondary email (for .mailmap) |
|
.mailmap |
|
Author’s organization/affiliation |
|
project-metadata.k9.ncl |
|
Author surname (for citations) |
|
docs/CITATIONS.adoc |
|
Author first name (for citations) |
|
docs/CITATIONS.adoc |
|
Author initials (for citations) |
|
docs/CITATIONS.adoc |
| Placeholder | Description | Example | Files |
|---|---|---|---|
|
Human-readable project name |
|
SECURITY.md, CODE_OF_CONDUCT.md, TOPOLOGY.md, STATE.a2ml, Justfile, GOVERNANCE.md, MAINTAINERS.md, flake.guix, devcontainer.json |
|
One-line description |
|
flake.guix |
|
Uppercase identifier (for Idris2 modules, C macros) |
|
ABI-FFI-README.md, src/abi/.idr, ffi/zig/.zig |
|
Lowercase identifier (for C symbols, filenames) |
|
ABI-FFI-README.md, ffi/zig/*.zig |
|
Repository name (slug) |
|
CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, cliff.toml |
|
GitHub/GitLab org or username |
|
SPDX headers, CONTRIBUTING.md, SECURITY.md, GOVERNANCE.md, MAINTAINERS.md, CODEOWNERS, mirror.yml, cliff.toml |
|
Git forge domain |
|
CONTRIBUTING.md |
| Placeholder | Description | Example | Files |
|---|---|---|---|
|
Current year |
|
SPDX headers (all files), GOVERNANCE.md, MAINTAINERS.md |
|
Current date (ISO) |
|
STATE.a2ml, MAINTAINERS.md |
|
Last updated date |
|
TOPOLOGY.md, THREAT-MODEL.md |
| Placeholder | Description | Example | Files |
|---|---|---|---|
|
Security contact email |
|
SECURITY.md |
|
40-char PGP fingerprint |
|
SECURITY.md |
|
URL to public PGP key |
|
SECURITY.md |
|
Project website |
|
SECURITY.md |
|
Conduct reports email |
|
CODE_OF_CONDUCT.md |
|
Conduct committee name |
|
CODE_OF_CONDUCT.md |
|
SLA for initial response |
|
CODE_OF_CONDUCT.md |
| Placeholder | Description | Example | Files |
|---|---|---|---|
|
License name |
|
ABI-FFI-README.md |
|
One-line project description |
|
STATE.a2ml |
| Placeholder | Description | Example | Files |
|---|---|---|---|
|
Repository name |
|
0-AI-MANIFEST.a2ml |
|
Creation date |
|
0-AI-MANIFEST.a2ml |
|
Maintainer name |
|
0-AI-MANIFEST.a2ml |
| Marker | Description | Files |
|---|---|---|
|
Unfilled section in AI installation guide |
|
These are not standard {{PLACEHOLDER}} markers – they are TODO
markers that must be replaced with project-specific content before
release. They mark sections where the developer (or AI) must fill in:
-
What questions the AI should ask the user
-
Exact prerequisite check and install commands
-
Privacy notice specific to this project
-
Complete installation command block
-
Credential setup instructions (URLs, scopes, env vars)
-
Verification commands and expected output
-
Error handling table
-
Example conversation
finishbot checks: just validate-ai-install verifies no
[TODO-AI-INSTALL] markers remain.
Some files contain deletion instructions:
| Marker | Meaning | File |
|---|---|---|
|
Delete this entire line after reading |
ABI-FFI-README.md (line 1) |
After replacing all placeholders, verify none remain:
grep -rn '{{' . --include='*.md' --include='*.adoc' --include='*.a2ml' \
--include='*.scm' --include='*.idr' --include='*.zig' --include='*.res' \
--include='Justfile' --include='*.guix' --include='*.toml' --include='*.yml' \
--include='*.yaml' --include='*.hs' --include='*.ncl' --include='*.txt' \
--include='*.json' --include='Containerfile' --include='dep5' \
| grep -v 'PLACEHOLDERS.md' | grep -v 'node_modules'If the above command produces no output, all placeholders have been replaced.