Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/docxology/template/projectnpx skills add docxology/template --skill projectgit clone --depth 1 https://github.com/docxology/templateWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00040 | $0.00912 |
| Opus 5 | $0.00020 | $0.00456 |
| Sonnet 5 | $0.00008 | $0.00182 |
| Haiku 4.5 | $0.00004 | $0.00091 |
Grade A, and why
infrastructure-project scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Project Module
Multi-project discovery, validation, and metadata management.
Project Discovery (discovery.py)
from infrastructure.project import discover_projects, ProjectInfo
# Discover all valid projects in the repository
projects = discover_projects(repo_root)
for project in projects:
print(f"{project.name}: {project.path}")
print(f" Has tests: {project.has_tests}")
print(f" Has manuscript: {project.has_manuscript}")
Structure Validation
from infrastructure.project import validate_project_structure
# Validate that a project has all required directories
is_valid, message = validate_project_structure(project_path)
Required directories:
src/— Project source codetests/— Test suite
Optional (recommended) directories:
scripts/— Analysis scripts (thin orchestrators)manuscript/— Markdown manuscript sections
Metadata Extraction
from infrastructure.project import get_project_metadata
# Extract project metadata from pyproject.toml and/or manuscript/config.yaml
metadata = get_project_metadata(project_path)
print(metadata.get("title"), metadata["version"], metadata["authors"])
Optional CodeGraph Helpers
CodeGraph is a local-only agent navigation index. Use these helpers to print safe commands and verify that a template-root index did not include private symlinked projects:
from pathlib import Path
from infrastructure.project import build_codegraph_init_command, verify_codegraph_scope_payload
print(build_codegraph_init_command(Path(".")).display)
offenders = verify_codegraph_scope_payload(codegraph_files_json)
The index directory .codegraph/ is generated local state and must remain
untracked.
Rendered vs Non-Rendered Subfolders
- Rendered:
projects/templates/(public exemplars) and optionalprojects/active/(hot-seat) — discovered and executed by infrastructure when present. - Non-rendered:
projects/working/andprojects/archive/in the simplified sidecar; the optional legacyprojects/active/is also preserved but not executed.
What ships with it
52 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- __init__.py 4.6 KB runs code
- AGENTS.md 25 KB
- codegraph.py 4.8 KB runs code
- codeowners.py 3.5 KB runs code
- copy_exemplar.py 20 KB runs code
- discovery.py 8.5 KB runs code
- domain_profile.py 5.4 KB runs code
- drift/__init__.py 483 B runs code
- drift/AGENTS.md 4.7 KB
- drift/checks_boundary.py 2.9 KB runs code
- drift/checks_docs_counts.py 11 KB runs code
- drift/checks_exemplar.py 20 KB runs code
- drift/checks_forkability.py 3.9 KB runs code
- drift/checks_publication_validators.py 11 KB runs code
- drift/checks_publication.py 28 KB runs code
- drift/checks.py 2.8 KB runs code
- drift/models.py 895 B runs code
- drift/orchestrator.py 7.5 KB runs code
- drift/README.md 2.7 KB
- drift/registry.py 3.2 KB runs code
- drift/runner.py 2.0 KB runs code
- exemplar_roster.py 11 KB runs code
- experiment_plan.py 6.0 KB runs code
- export_smoke.py 5.0 KB runs code
- git_guards.py 19 KB runs code
- info.py 3.9 KB runs code
- linking.py 4.8 KB runs code
- manuscript/98_symbols_glossary.md 189 B
- manuscript/AGENTS.md 1.2 KB
- manuscript/README.md 1.1 KB
- metadata.py 3.5 KB runs code
- project_info.py 2.5 KB runs code
- promotion/__init__.py 1.1 KB runs code
- promotion/__main__.py 192 B runs code
- promotion/AGENTS.md 1.1 KB
- promotion/attestation.py 3.6 KB runs code
- promotion/cli.py 2.2 KB runs code
- promotion/composite.py 5.0 KB runs code
- promotion/models.py 2.7 KB runs code
- promotion/README.md 1.0 KB
- promotion/security_gate.py 9.6 KB runs code
- public_capabilities.py 26 KB runs code
- public_capability_contracts.py 17 KB runs code
- public_readiness.py 9.4 KB runs code
- public_scope.py 5.6 KB runs code
- public_template_contract.py 4.5 KB runs code
- README.md 13 KB
- setup_hook.py 12 KB runs code
- template_manifest.json 13 KB
- validation.py 2.0 KB runs code
- working_render.py 14 KB runs code
- workspace.py 3.6 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2d ago First seen · 137 lines · 40 tokens per session scan A 1643edeafa2d
infrastructure-project is a skill published in the GitHub repository docxology/template (19 stars, last pushed 2d ago), licensed Apache-2.0. It adds 40 tokens to every session and 912 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
architectural-engineering-manager
Use when a task needs the judgment of an Architecture/Engineering firm or department manager — pricing a project fee (lump sum vs. hourly vs. % of construction cost), staffing a project against backlog, evaluating scope creep on a fixed-fee job, managing professional liability exposure, or deciding whether to pursue a…
administrative-services-manager
Use when a task needs the judgment of an Administrative Services Manager — evaluating a vendor contract on total cost of ownership rather than price, right-sizing a facilities/admin budget against actual utilization, anticipating where an operational process breaks at the org's next size milestone, or diagnosing why…
archivist
Use when a task needs the judgment of an archivist — appraising whether a donated or transferred collection has enduring value, deciding a processing level for a backlog, writing a finding aid, triaging preservation under budget constraints, or resolving a records-restriction question.
write-a-prd
Create a PRD through user interview, codebase exploration, and module design, then submit to the issue tracker. Use when asked to 'write a PRD', 'create a product requirements document', 'plan a new feature'.
pr-blocker-summarizer
Summarizes open pull requests into a blockers-first standup digest. Activates when the user asks to summarize open PRs, find blocked pull requests, generate a PR standup, or triage review backlog from a PR export.
f1-test-drive
Orchestrate F1 test drives to validate the Cyrus agent system end-to-end across issue-tracker, EdgeWorker, and activity rendering.