docs(agents): tooling + architecture-upkeep rules, with tool tests #24

Merged
zwitschi merged 1 commits from tooling-rules-0.1.2 into main 2026-11-08 16:25:35 +01:00
Owner

Summary

Researched the sibling project's Python tooling (security-game/tools/: a documented inventory README, tools/tests/ on stdlib unittest with requirements-tools.txt, a check_docs.py documentation gate, clean-worktree rule for generators, paid-API tools kept human-triggered) and encoded the applicable parts here.

AGENTS.md — two new sections

Python and shell tooling

  • Fix the tool, not the artefact — a manual asset fix means the tool is missing a step.
  • Improve over fork — extend rather than duplicate; factor shared code after two or three uses.
  • One script one job; fail loudly; result files under /tmp/gigline/ for Unreal commandlets; absolute paths into Blender/Unreal sandboxes; clean worktree for generators (.blend/.umap check out read-only); network/paid tools human-triggered with HTTP 429 back-off; measure, don't assert (print counts/holes/percentiles so a claim can be re-checked).
  • Document every tool in the README inventory beside it (Tools/, Geo/, Art/blender/).
  • Test the pure parts in Tools/tests/ with stdlib unittest, no Blender/Unreal process.

Architecture documentation

  • Docs/Architecture/ is arc42 in Markdown; a table maps each kind of change (new module, runtime flow, packaging, decision, quality goal, risk, term) to the section that must be updated in the same change.
  • Describe what exists (plans stay in ROADMAP.md/TODO.md); ADRs are append-only; keep the combined architecture.md in sync; prettier --check must pass.

Made the referenced scaffolding real

  • Tools/tests/ — README + __init__.py + 12 passing tests: input_emulation ioctl/key-code encoding and block_height_report height classification.
  • requirements-tools.txt (requests).
  • Extracted classify_height() out of block_height_report.main() so the roof/shelter rule (the v0.1.2 finding) is testable — demonstrating the "extract logic from main() to test it" rule.
  • Tools/README.md: tests section + input-injection rows; the stale TEMP-QA row replaced with the real gigline.SetupLogs cvar and -qaselftest phases.
  • Docs/Architecture/05 + architecture.md: tools table extended and linked to the new rules (kept in sync per the new rule).

Verification: python3 -m unittest discover -s Tools/tests -t Tools -p 'test_*.py' → 12 tests OK; prettier --check clean on all touched Markdown.

## Summary Researched the sibling project's Python tooling (`security-game/tools/`: a documented inventory README, `tools/tests/` on stdlib `unittest` with `requirements-tools.txt`, a `check_docs.py` documentation gate, clean-worktree rule for generators, paid-API tools kept human-triggered) and encoded the applicable parts here. ### `AGENTS.md` — two new sections **Python and shell tooling** - **Fix the tool, not the artefact** — a manual asset fix means the tool is missing a step. - **Improve over fork** — extend rather than duplicate; factor shared code after two or three uses. - One script one job; fail loudly; result files under `/tmp/gigline/` for Unreal commandlets; absolute paths into Blender/Unreal sandboxes; clean worktree for generators (`.blend`/`.umap` check out read-only); network/paid tools human-triggered with HTTP 429 back-off; **measure, don't assert** (print counts/holes/percentiles so a claim can be re-checked). - **Document every tool** in the README inventory beside it (`Tools/`, `Geo/`, `Art/blender/`). - **Test the pure parts** in `Tools/tests/` with stdlib `unittest`, no Blender/Unreal process. **Architecture documentation** - `Docs/Architecture/` is arc42 in Markdown; a table maps each kind of change (new module, runtime flow, packaging, decision, quality goal, risk, term) to the section that must be updated **in the same change**. - Describe what exists (plans stay in `ROADMAP.md`/`TODO.md`); ADRs are append-only; keep the combined `architecture.md` in sync; `prettier --check` must pass. ### Made the referenced scaffolding real - `Tools/tests/` — README + `__init__.py` + **12 passing tests**: `input_emulation` ioctl/key-code encoding and `block_height_report` height classification. - `requirements-tools.txt` (`requests`). - Extracted `classify_height()` out of `block_height_report.main()` so the roof/shelter rule (the `v0.1.2` finding) is testable — demonstrating the "extract logic from main() to test it" rule. - `Tools/README.md`: tests section + input-injection rows; the stale TEMP-QA row replaced with the real `gigline.SetupLogs` cvar and `-qaselftest` phases. - `Docs/Architecture/05` + `architecture.md`: tools table extended and linked to the new rules (kept in sync per the new rule). Verification: `python3 -m unittest discover -s Tools/tests -t Tools -p 'test_*.py'` → 12 tests OK; `prettier --check` clean on all touched Markdown.
zwitschi added 1 commit 2026-11-08 16:25:32 +01:00
Researched the sibling project's tooling discipline (tools/README inventory,
tools/tests with stdlib unittest, check_docs gate, clean-worktree rule, paid-API
tools human-triggered) and encoded it for this repository:

AGENTS.md gains two sections.
- 'Python and shell tooling': fix the tool not the artefact; improve over fork;
  one script one job; fail loudly; result files for Unreal commandlets; absolute
  paths into sandboxes; clean worktree for generators (.blend/.umap are
  read-only on checkout); network/paid tools human-triggered with 429 back-off;
  measure don't assert; document every tool in the README inventory; test the
  pure parts.
- 'Architecture documentation': Docs/Architecture is arc42 in Markdown; a table
  mapping each kind of change to the section that must be updated; describe what
  exists, ADRs append-only, keep architecture.md in sync, prettier --check.

Made the referenced scaffolding real rather than aspirational:
- Tools/tests/ (README + __init__) with 12 passing unittest tests covering
  input_emulation's ioctl/key-code encoding and block_height_report's height
  classification.
- requirements-tools.txt (requests).
- Extracted classify_height() out of block_height_report.main() so the roof/
  shelter rule is testable — the rule itself came from the v0.1.2 finding.
- Tools/README: tests section, input-injection rows, and the removed TEMP-QA row
  replaced by the real cvar/self-test description.
- Docs/Architecture 05 + architecture.md: tools table extended (input injection,
  tests) and a link to the tool rules; kept in sync per the new rule.
zwitschi merged commit 68d8745534 into main 2026-11-08 16:25:35 +01:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: zwitschi/gig-line#24