Commit Graph
50 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Opus 5 f40d627a1b docs(agents): merge the tool-specific files into AGENTS.md
CLAUDE.md and GEMINI.md existed as per-runtime extensions of AGENTS.md, and
only one of them carried anything at all: GEMINI.md stated that it had no
additions, while CLAUDE.md held rules that bind every runtime anyway — the
permission announcement, the make-over-raw preference, the loop, chain and
heredoc bans, the stream-the-log-to-/tmp rule, the CI-evidence rule, the push
ban and the comment rule. A rule that binds every agent does not belong in one
agent's file. AGENTS.md absorbs them and now states that no tool-specific
extension file exists; agents whose runtime auto-loads a different filename
reach it through their own configuration instead.

The filenames were machinery as much as prose. The PR templates, the branch
and pull-request scope tables, the settings and security docs that justified
the loop deny by "the textual CLAUDE.md rule", six requirement documents whose
push instruction linked ../../CLAUDE.md, and a test docstring citing the
shell-loop ban all named them, and now name AGENTS.md.
scripts/meta/resolve/pr/scope.sh deliberately keeps matching CLAUDE.md and
GEMINI.md: this change deletes them, and without those patterns the change
itself would not classify as agent-scope.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-21 22:51:04 +02:00
kevinveenbirkenbach 32f600ff5b docs(agents): forbid printing raw task blocks from deploy logs
A deploy log carries provisioning secrets in argv and environment dumps,
and reading one by line range puts them in the transcript verbatim. The
rule requires extracting the named field instead, states that a secret
denylist is not protection because it is case-sensitive and secrets also
ride inside URL paths, and records that no_log does not help locally
because MASK_CREDENTIALS_IN_LOGS is disabled there.
2026-08-10 00:10:53 +02:00
kevinveenbirkenbachandClaude Opus 4.8 43d23ef696 refactor(agents): reorganize operator workflows into i8- skills
Move the operator cheatsheet's copy-paste prompts into per-workflow i8- skills
that each route to their authoritative procedure doc, and reduce the cheatsheet
to a table index plus a usage paragraph, enforced by a new lint. Add skills for
develop, test, quality, refactor, the debug and requirement flows, and
commit / pull-request / push-trigger-pull; rename the iteration skills to
i8-iterate-* and rename the index to i8-help. Wire the active-listening,
dialectic, and robot skills into the flows for clarification, uncertain root
causes, and autonomous execution. Drop the Infinito-specific agent aliases
(alias.md, INFINITO_ALIAS_MD, the make alias agent section, and the two alias
tests); terminal aliases stay.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-21 11:14:44 +02:00
kevinveenbirkenbachandClaude Opus 4.8 c4f160ab07 docs(agents): spell out the alias hint as a full sentence
Replace the bracket tag with the sentence form so the hint teaches the
shorter alias in place: Speed up by using prompt/cli alias X instead of
what the operator wrote.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 03:04:06 +02:00
kevinveenbirkenbachandClaude Opus 4.8 f08d71534a feat(tooling): operator alias, shortcut, skill, cheat and onboard system
Add the i8* terminal aliases (make install-alias) and ai8* agent
conversation shortcuts (docs/.../agents/alias.md), move skill
distribution to the external INFINITO_SKILLS_REPOSITORY (make
install-skills), and add make cheat, make alias and make onboard. Introduce
custom.env operator overrides (win over defaults and handlers) and pin
INFINITO_ALIAS_MD / INFINITO_ALIAS_REPOSITORY / INFINITO_SKILLS_REPOSITORY
in default.env. Drop the in-repo skills-lock.json and its update-skills CI
job. AGENTS.md instructs agents to suggest the matching cli/prompt alias
when an operator writes something an alias covers. Lints enforce alias
sorting, i8/ai8 prefixes, no consonant clusters, full make-target
coverage, and terminal/agent shortcut non-overlap.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-10 18:43:35 +02:00
kevinveenbirkenbachandClaude Opus 4.7 c02229b4be refactor(make): align targets to domain prefixes (compose-, network-, etc.)
Apply a consistent naming convention to the Make target inventory so
every target is grouped by its domain:

- compose-*  (compose-up/down/restart/stop/exec/inner-run)
- network-*  (network-dns-setup/remove, network-ipv6-disable/restore,
              network-refresh, network-trust-ca)
- security-* (security-apparmor-restore/teardown)
- diagnose-* (diagnose-network, diagnose-disk-usage)
- fix-*      (fix-chmod, fix-dockerignore)
- clean-*    (clean-cache, clean-pycache-dirs)
- install-*  (install-agent)
- meta-*     (meta-list, meta-tree, meta-mig)

Drop the stale debug-network target and reintroduce its functionality
as diagnose-network. Cascade renames through:

- Makefile (.PHONY entries, prereqs, recursive $(MAKE) calls)
- contributor docs, agent-iteration docs, role-level docs
- bundle README, environment scripts, install/lint/test wrappers
- AGENTS.md, CLAUDE.md, compose/cache.override.yml, .github/workflows

Historical entries under docs/requirements/ and changelog/ stay
untouched as audit logs.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 21:00:45 +02:00
kevinveenbirkenbachandClaude Opus 4.7 16bdbf03d7 docs: fix repo-wide drift against documentation.md style rules
Three classes of drift cleaned up across 85 .md files:

- Em-dashes: replaced ` — ` with the contextually correct separator
  (colon for `term: explanation`, period to split clauses across
  sentences/source lines, parentheses for asides, semicolon for
  tight-linked continuations). Two intentional exceptions remain
  in `docs/contributing/documentation.md` (the rule literal) and
  inside a fenced ```sh block in `docs/contributing/actions/debugging/ci.md`.
- SPOT self-labels: rewrote "This is the SPOT for X" to describe
  the subject directly ("This directory holds X" / "This file
  describes X"). Cross-references to other artefacts' canonical
  role remain unchanged.
- Heading-emoji position: moved leading-emoji headings (`# 🧩 Title`)
  to trailing position (`# Title 🧩`) per the headline rule that
  emojis MUST come after the title text.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 20:12:07 +02:00
kevinveenbirkenbachandClaude Opus 4.7 44991fdf67 docs(agents): require parallel compaction during commit-time make test
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 17:22:06 +02:00
kevinveenbirkenbachandClaude Opus 4.7 bd6b14b87a fix(templates): migrate users.* access to lookup('users', ...) form
- decidim env.j2: defensive .get() chain for no-reply email/token
  to bypass Ansible 2.19 strict dict attribute access failure
- friendica/joomla playwright.env.j2: replace direct users.x.y
  dot-path with lookup('users', 'x').y
- AGENTS.md: document make-exec rule for container-owned files

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-21 17:13:15 +02:00
kevinveenbirkenbachandClaude Opus 4.7 b125bbd360 docs(agents): tighten AGENTS.md and CLAUDE.md for parser clarity
AGENTS.md:
- Replace "SPOT" with "single source of truth"
- Split loading rules: CONTRIBUTING.md, docs/contributing/ walk, docs/agents/ walk — each an explicit MUST
- Add Tool-Specific Extensions section binding Claude Code → CLAUDE.md, Gemini CLI → GEMINI.md
- Extend reload trigger to cover tool-specific extension file
- Make sandbox.network bullet prescriptive (replace "govern" with conditional MUSTs)
- Drop architectural description from permission model intro
- Fix Temporary Files: treat settings.json as SPOT, stop duplicating allowWrite contents
- Collapse redundant Role-Specific bullets

CLAUDE.md:
- Strip rhetorical amplifiers; rule-form only
- Forbid multi-statement chains with any separator (;, newline, &&, ||), subshells and brace groups included
- Forbid shell heredoc for file creation; direct to Write/Edit
- Drop recap bullets already covered by explicit rules above

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-17 14:08:07 +02:00
kevinveenbirkenbachandClaude Opus 4.7 764060c793 chore(claude): expand sandbox network/write paths, ignore host artefacts
Network gate does not honor wildcards, so allowedDomains is enumerated
explicitly for every host the agent + tooling actually need. Adds
~/.cache/pip, ~/.venvs, ~/.ansible to allowWrite so the pre-commit
make test hook can install the editable package and run ansible.

Adds host shell / editor / tooling state files to .gitignore (and the
auto-generated .dockerignore mirror) so they never become part of the
working tree. Switches the dependabot coverage test to git ls-files
with an os.walk fallback that derives its skip list from the live
.gitignore, so it stays correct in container test environments
without .git/ while still ignoring untracked host artefacts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-16 19:24:31 +02:00
Environment TestandClaude Opus 4.6 65cf9caff7 chore(claude): restructure agent docs, harden sandbox config, update settings
- Move docs/contributing/tools/agents/claude.md to claude/settings.md
- Split sandbox explanations into claude/sandbox.md, add claude/README.md as index
- Enable OS-level sandbox ("sandbox.enabled: true") for project-wide filesystem isolation
- Fail-closed on missing backend ("sandbox.failIfUnavailable: true") to prevent false-security state when bwrap/sandbox-exec is absent
- Add deny rules: "git clean*", "git branch -D*"
- Remove redundant "Read(~/.cache/pre-commit/**)" allow entry
- Update CLAUDE.md to instruct agent to summarize live permission state from settings.json at session start
- Update AGENTS.md and common.md references to new doc paths
- Normalize .md formatting per documentation.md rules (em dash removal, headline emojis)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 16:55:45 +02:00
Environment TestandClaude Opus 4.6 118d9b0e69 chore(claude): tighten gh workflow perms, consolidate /tmp grant, sort settings
- Split Bash(gh workflow *) into list/view (allow), run (ask), enable/disable (deny)
- Add Bash(break) to allow list
- Remove duplicate /tmp grant from permissions.additionalDirectories; rely on sandbox.filesystem.allowWrite
- Add AGENTS.md "Temporary Files" rule requiring agents to write transient files only under /tmp
- Reorder .claude/settings.json allow entries into logical sections (Git, GitHub CLI, Build, Python, Ansible, Docker, Shell, Read, Web)
- Document new gh workflow entries, break, and Temporary Files cross-link in docs/contributing/tools/agents/claude.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-16 16:10:39 +02:00
Environment TestandClaude Opus 4.6 c64c80cdb8 docs(agents): make .claude/settings.json the shared permission policy
Adds a Permission Model section to AGENTS.md that binds all agents
(Claude Code, Codex, Gemini, or any other) to the allow/ask/deny
entries in .claude/settings.json, even when the agent's own runtime
does not consult that file. Spells out how patterns are matched, that
deny overrides allow, that ask requires a per-conversation
confirmation, and that anything not in allow defaults to ask.

Makes .claude/settings.json the single source of truth for automated
execution policy in this repository and points to the per-entry
rationale in docs/contributing/tools/agents/claude.md.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-15 17:27:17 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 0fe7c5fd6f docs(claude): document settings permissions and restructure agent docs
- Extend .claude/settings.json with git mv, rm, cherry-pick, apply, gh run, gh api, bash -n
- Add make chmod-scripts target and document it in make.md
- Move docs/contributing/tools/agents.md to agents/common.md
- Add docs/contributing/tools/agents/README.md and claude.md with full permission reference in table format
- Fix relative links in common.md after directory move

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-14 20:56:37 +02:00
Environment TestandClaude Sonnet 4.6 6c8547c6a4 feat(skills): add agent skills install/update pipeline and caveman docs
- Add scripts/install/skills/install.sh to restore skills from
  skills-lock.json via npx skills experimental_install
- Add scripts/install/skills/update.sh to update all skills by
  re-running skills add for each source in skills-lock.json
- Add make install-skills and make update-skills targets
- Add .github/workflows/update-skills.yml for daily automated updates
  matching Dependabot schedule (00:00 UTC), opens PR on lock changes
- Add docs/agents/meta/caveman.md as SPOT for caveman mode, startup
  notification, and token-budget tier progression
- Update AGENTS.md with RFC 2119-compliant skills installation check
- Update docs/agents/action/commit.md: replace ALWAYS with MUST
- Update pyproject.toml: respect-gitignore = true, exclude .agents
- Track skills-lock.json and add .agents to .gitignore

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-10 12:54:43 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 ecda0be568 docs(agents): add role-specific AGENTS.md support and protect test-e2e-playwright
Extend root AGENTS.md with a convention for per-role agent instruction
files, and introduce the first instance for the shared Playwright runner
to enforce minimal, confirmed changes only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-04 15:09:48 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 46e8f0e22f docs: add reload instruction and RFC 2119 fixes to agent docs
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 22:22:47 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 1d8a6cc438 docs: consolidate agent meta-files, add RFC 2119 link rules and refactor workflow
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 22:13:43 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 2e901ad2ae docs: make agent instructions imperative and add Claude startup checklist
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-28 21:26:25 +01:00
kevinveenbirkenbach 507f1386a7 refactor: reorganize agent docs 2026-03-28 01:29:16 +01:00
kevinveenbirkenbach 80307b455a docs: add recursive agent guidance 2026-03-27 13:02:11 +01:00
kevinveenbirkenbach f5c1405860 docs: refine principles and agent guidance 2026-03-27 02:53:45 +01:00
kevinveenbirkenbach e8488b12bf Clarify warning follow-up during make test 2026-03-27 02:24:44 +01:00
kevinveenbirkenbach 5c0f1b27f7 Clarify staged warning follow-up for agents 2026-03-27 00:33:31 +01:00
kevinveenbirkenbach 53b5cd58db Clarify PR template selection for agents 2026-03-27 00:22:44 +01:00
kevinveenbirkenbach d217354c2a Refine contribution and PR template documentation 2026-03-26 23:08:47 +01:00
kevinveenbirkenbach d0587b7f01 Clarify make test commit instructions 2026-03-26 08:51:39 +01:00
kevinveenbirkenbach 7e50e5325b Refine ethics section in AGENTS 2026-03-26 08:35:11 +01:00
kevinveenbirkenbach 116d2613a5 docs: add TDD principle to AGENTS 2026-03-25 21:50:48 +01:00
kevinveenbirkenbach b7d0e0b301 docs: clarify test policy for non-executable files 2026-03-25 21:50:48 +01:00
kevinveenbirkenbach 9ae845def2 Document Playwright failure asset handling 2026-03-25 19:32:20 +01:00
kevinveenbirkenbach c33e3a349c Add upstream image testing guidance 2026-03-25 16:21:45 +01:00
kevinveenbirkenbach 29ed4f0e4a Improve agent instruction formatting 2026-03-25 16:21:45 +01:00
kevinveenbirkenbach 474a463aa7 Merge branch 'main' into feature/playwright-e2e-test 2026-03-25 15:52:30 +01:00
kevinveenbirkenbach cbde4b80f7 docs: improve AGENTS.md regression test wording 2026-03-25 15:44:56 +01:00
kevinveenbirkenbach 9079296618 Added test fail instructions for AGENTS.md 2026-03-25 15:44:55 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 f366caf4fe docs: add nocheck docker-version syntax to AGENTS.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 15:44:54 +01:00
kevinveenbirkenbach 194652eefe Merge branch 'main' into feature/docker-version-check 2026-03-25 15:04:15 +01:00
kevinveenbirkenbach 50cfa09134 docs: improve AGENTS.md regression test wording 2026-03-25 14:44:53 +01:00
kevinveenbirkenbach 516bd8a20a docs(agents): relax test requirement for markdown-only changes 2026-03-25 13:24:35 +01:00
kevinveenbirkenbach 1d8cb07f87 docs(agents): relax test requirement for markdown-only changes 2026-03-25 13:24:11 +01:00
kevinveenbirkenbach 67f65e30e1 Added test fail instructions for AGENTS.md 2026-03-25 10:59:21 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 bd1cb3ee59 docs: add nocheck docker-version syntax to AGENTS.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 01:53:55 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 118c92b96a docs: add nocheck docker-version syntax to AGENTS.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 01:53:49 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 cd89ff3512 docs: apply Zen of Python principle to all programming languages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 00:11:44 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 45ee742b1f docs: add lint standards, architecture guidelines, and refine semantic section in AGENTS.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 00:11:44 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 a118d0423c docs: add ethics section to AGENTS.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 00:11:44 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 14ade69ccf docs: extend AGENTS.md with code quality, semantic, and help sections
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 00:11:43 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 92fe15d84a docs: add AGENTS.md as central agent instruction file and refactor CLAUDE.md/GEMINI.md
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 21:43:41 +01:00