docs: Chunk 3 grill, PRD, ADRs, and doc updates

- docs/prd/chunk-3-skills-library.md: PRD for 42-skill library rebuild;
  AGENTS.md refactor as prerequisite; factory bootstrap order (write-eval
  first); source field schema; upstream review cadence; design phase
  sequence; IaC/Gitea scope decisions
- docs/adr/0011-provider-agnostic-issue-tracker.md: file-based default,
  Gitea as provider adapter, "issue" as canonical cross-provider term
- docs/adr/0012-agents-md-provider-agnostic-entry-point.md: AGENTS.md as
  content source, CLAUDE.md as thin adapter; partially supersedes ADR-0005
- CONTEXT.md: 8 new glossary terms (AGENTS.md, skill composition, source
  field, provider-agnostic issue tracker, design phase sequence, PRD scope,
  issue scope, bidirectional reference principle); CLAUDE.md index model
  updated; stale workflow example fixed
- docs/ROADMAP.md: changelog tooling and IaC/Gitea scope resolved; when:
  field question updated; Chunk 3 grill housekeeping note added
- docs/spec/overview.md: Chunk 3 target updated with PRD link, skill count,
  and AGENTS.md prerequisite

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-17 14:22:59 +00:00
parent e38882b565
commit 537c681bb9
7 changed files with 301 additions and 21 deletions

View File

@@ -100,25 +100,25 @@
## IaC Domain Skills
| Skill | Trigger description | Key constraints |
|---|---|---|
| `iac/write-ansible-role` | Write an Ansible role, create Ansible automation, Ansible role for X | Idempotency review must specifically check: missing `creates:` on file-creating tasks, unconditional handlers (should use `notify`), absent rollback strategies, `shell`/`command` tasks without guards. Molecule test scaffold included; version pinned in frontmatter |
| `iac/write-terraform-module` | Write Terraform module, Terraform config for X | Pin provider versions; never use Terraform provisioners to call Ansible — HashiCorp designates provisioners a "last resort" and they break idempotency; use a separate CI/CD Ansible stage instead; includes variables, outputs, validation blocks |
| `iac/write-k8s-manifest` | Write Kubernetes manifest, K8s deployment for X | Resource limits required; security context required; network policy required |
| `iac/write-docker-compose` | Write Docker Compose, compose stack for X | Pinned image versions; secrets via env vars; healthchecks included |
| `iac/proxmox-vm-spec` | Create Proxmox VM, Proxmox config for X | Loads references/proxmox-cluster.md; bpg/proxmox provider; version pinned |
| `iac/iac-security-review` | Security review this IaC, check Terraform/Ansible for issues | Checks: hardcoded secrets, overly permissive access, missing limits, unpinned versions, Terraform provisioners, non-idempotent Ansible patterns (shell/command without guards, missing creates:, unconditional handlers) |
| `iac/write-molecule-test` | Write Molecule tests, Ansible testing, role test | Generates converge.yml, verify.yml, molecule.yml |
| Skill | Trigger description | Key constraints |
| ------------------------------| ----------------------------------------------------------------------| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `iac/write-ansible-role` | Write an Ansible role, create Ansible automation, Ansible role for X | Idempotency review must specifically check: missing `creates:` on file-creating tasks, unconditional handlers (should use `notify`), absent rollback strategies, `shell`/`command` tasks without guards. Molecule test scaffold included; version pinned in frontmatter |
| `iac/write-terraform-module` | Write Terraform module, Terraform config for X | Pin provider versions; never use Terraform provisioners to call Ansible — HashiCorp designates provisioners a "last resort" and they break idempotency; use a separate CI/CD Ansible stage instead; includes variables, outputs, validation blocks |
| `iac/write-k8s-manifest` | Write Kubernetes manifest, K8s deployment for X | Resource limits required; security context required; network policy required |
| `iac/write-docker-compose` | Write Docker Compose, compose stack for X | Pinned image versions; secrets via env vars; healthchecks included |
| `iac/proxmox-vm-spec` | Create Proxmox VM, Proxmox config for X | Loads references/proxmox-cluster.md; bpg/proxmox provider; version pinned |
| `iac/iac-security-review` | Security review this IaC, check Terraform/Ansible for issues | Checks: hardcoded secrets, overly permissive access, missing limits, unpinned versions, Terraform provisioners, non-idempotent Ansible patterns (shell/command without guards, missing creates:, unconditional handlers) |
| `iac/write-molecule-test` | Write Molecule tests, Ansible testing, role test | Generates converge.yml, verify.yml, molecule.yml |
---
## Gitea Integration Skills
| Skill | Trigger description | Key constraints |
|---|---|---|
| `gitea/setup-gitea-mcp` | Set up Gitea MCP, connect agent to Gitea, configure MCP | Generates config + dedicated agent user setup; includes --tools filter recommendations |
| `gitea/post-pr-review` | Post review findings to PR, add review comments, submit review | Uses Gitea MCP; tiered severity; never auto-merges |
| `gitea/create-issue` | Create a Gitea issue, log this as a bug, file an issue | Uses Gitea MCP; requires structured finding as input |
| Skill | Trigger description | Key constraints |
| -------------------------| ----------------------------------------------------------------| ----------------------------------------------------------------------------------------|
| `gitea/setup-gitea-mcp` | Set up Gitea MCP, connect agent to Gitea, configure MCP | Generates config + dedicated agent user setup; includes --tools filter recommendations |
| `gitea/post-pr-review` | Post review findings to PR, add review comments, submit review | Uses Gitea MCP; tiered severity; never auto-merges |
| `gitea/create-issue` | Create a Gitea issue, log this as a bug, file an issue | Uses Gitea MCP; requires structured finding as input |
---