v0.5.0
[0.5.0] - 2026-07-16
Added
registry/tr-registry.yaml— TR-SEC-008 (local credential files
permission-restricted and secret-scanned), TR-SEC-009 (CI pipelines run
least-privilege and fully pinned), TR-SEC-010 (agent tool permission grants
are a security boundary — least agency), exported from the private
ATT&CK/ATLAS-informed security baseline (ADR-009)templates/threat-model.md— design-stage threat model mapping trust
boundaries and data classification to MITRE ATT&CK/ATLAS techniques,
required for ADRs introducing a new listener, credential, agent tool grant,
or external content source; includes the "Impossible vs. Tedious" section
(barrier vs. friction classification, from Anthropic's Zero Trust for AI
Agents, ADR-010)AGENTS.md— "Threat Modeling and Least Agency" section presenting the
impossible-vs-tedious test and TR-SEC-010 under the industry "least agency"
name (OWASP), with citationsAGENTS.md— "Guard Pattern: Co-located Reviewed Baselines" section
documenting the "make dangerous changes loud, not impossible" governance
pattern, including its honest limitscripts/agent-permission-guard.py— reference implementation of the
co-located-baseline guard pattern for TR-SEC-010: hard-codes a reviewed set
of agent tool-permission grants, fails on any forbidden wildcard
write/install/exec/network grant, and fails on any grant absent from the
baseline until a human adds it in the same PR. Exit-0/1/2 CLI contract
matching the existing scripts; 7 tests intests/test_agent_permission_guard.pyexamples/agent-permission-guard/— worked example: a settings file with a
planted forbidden grant and a planted unreviewed grant, both caught by the
guard;.github/workflows/agent-permission-guard-demo.ymlgates this in CI
the same wayconfig-drift-demo.ymlgates the config-drift worked exampleexamples/worked-example/docs/decisions/ADR-004-example.md— synthetic ADR
illustrating the security-baseline decision (public-safe rewrite of the
private ADR-009 pattern)scripts/llms-txt-generator.py— generatesllms.txt(v0.5 roadmap item) at repo
root from the coding-relevant TR registry subset plusagents/,templates/, and
scripts/, following the emerging llms.txt convention (https://llmstxt.org) so any
agent framework that reads it — not only Cursor — can discover this repo's content.
Generalizesscripts/cursor-rules-adapter.py's "generate editor/agent context from
the registry" pattern (docs/agent-skills-integration.mdintegration pattern 2):
dynamically loads and reuses the Cursor adapter's registry parser and subset
selection (importlib, since the adapter's filename is hyphenated and not
import-able as a normal module) rather than re-implementing YAML parsing.
--checkdrift-gates the committedllms.txtinrelease-check.yml, alongside
the existing Cursor rules drift gate. 15 new tests
(tests/test_llms_txt_generator.py), following the same subprocess-CLI testing
pattern astests/test_cursor_rules_adapter.py.
Changed
.github/workflows/release-check.ymland.github/workflows/config-drift-demo.yml—
added an explicit least-privilegepermissions: contents: readblock and pinned
actions/checkoutandactions/setup-pythonto full commit SHAs (human-readable
version in a trailing comment) to comply with the TR-SEC-009 this release exports;
previously pinned to mutable version tagsATTRIBUTIONS.md— added rows for MITRE ATT&CK/ATLAS, Anthropic's Zero Trust for
AI Agents, OWASP agentic security guidance, andMadsLorentzen/ai-job-search
(comparative pattern reference for the guard script; no code copied)docs/requirements-implementation-map.md— rows for threat modeling, impossible-vs-tedious,
least agency, the co-located guard pattern, and CI least-privilege/SHA pinningREADME.md— Quick start command foragent-permission-guard.py; Enforced workflow
section links the newexamples/agent-permission-guard/trace
Full changelog: https://github.com/onesimplecode/ai-engineering-standards/blob/main/CHANGELOG.md