@ancleto/spec 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +46 -0
  2. package/agents/coder.md +149 -0
  3. package/agents/context-resolver.md +102 -0
  4. package/agents/documenter.md +157 -0
  5. package/agents/memory-keeper.md +142 -0
  6. package/agents/orchestrator.md +423 -0
  7. package/agents/reviewer.md +205 -0
  8. package/agents/spec-writer.md +105 -0
  9. package/agents/technical-discovery.md +134 -0
  10. package/agents/technical-seed-writer.md +56 -0
  11. package/agents/tester.md +179 -0
  12. package/commands/opsx-apply.md +161 -0
  13. package/commands/opsx-archive.md +172 -0
  14. package/commands/opsx-bulk-archive.md +255 -0
  15. package/commands/opsx-continue.md +135 -0
  16. package/commands/opsx-explore.md +181 -0
  17. package/commands/opsx-ff.md +164 -0
  18. package/commands/opsx-new.md +151 -0
  19. package/commands/opsx-onboard.md +567 -0
  20. package/commands/opsx-propose.md +174 -0
  21. package/commands/opsx-recall.md +57 -0
  22. package/commands/opsx-sync.md +144 -0
  23. package/commands/opsx-verify.md +176 -0
  24. package/package.json +41 -0
  25. package/skills/ancleto-commit/SKILL.md +118 -0
  26. package/skills/ancleto-pr/SKILL.md +164 -0
  27. package/skills/ancleto-technical-discovery/SKILL.md +74 -0
  28. package/skills/ancleto-technical-discovery/references/archetypes/api-layered.md +8 -0
  29. package/skills/ancleto-technical-discovery/references/archetypes/monorepo.md +8 -0
  30. package/skills/ancleto-technical-discovery/references/archetypes/ops-tooling.md +7 -0
  31. package/skills/ancleto-technical-discovery/references/archetypes/service-legacy.md +7 -0
  32. package/skills/ancleto-technical-discovery/references/archetypes/spa.md +7 -0
  33. package/skills/ancleto-technical-discovery/references/discovery-config.md +24 -0
  34. package/skills/ancleto-technical-discovery/references/generation-pipeline.md +56 -0
  35. package/skills/ancleto-technical-discovery/references/node-frontmatter.md +30 -0
  36. package/skills/ancleto-technical-discovery/references/output-contract.md +36 -0
  37. package/skills/ancleto-technical-discovery/references/templates/dossier.md +38 -0
  38. package/skills/ancleto-technical-discovery/references/templates/inventory.md +22 -0
  39. package/skills/ancleto-technical-discovery/references/templates/setup.md +27 -0
  40. package/skills/ancleto-technical-discovery/references/validation-checklist.md +12 -0
  41. package/skills/ancleto-upgrade/SKILL.md +449 -0
  42. package/skills/ancleto-upgrade/references/templates.md +320 -0
  43. package/src/cli/index.js +119 -0
  44. package/templates/AGENTS.md +36 -0
  45. package/templates/CONTRIBUTING.md +25 -0
  46. package/templates/PRODUCT.md +180 -0
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: ancleto-commit
3
+ description: Create semantic git commit following conventional commits (conventional commits, protected branches, semantic messages)
4
+ license: MIT
5
+ compatibility: Requires git
6
+ metadata:
7
+ author: ancleto
8
+ version: '1.0'
9
+ category: git-workflow
10
+ ---
11
+
12
+ Create a semantic git commit following semantic commit standards.
13
+
14
+ **When to use**: User wants to commit changes with proper semantic commit message.
15
+
16
+ **Steps**
17
+
18
+ 1. **Check current branch and status**
19
+
20
+ ```bash
21
+ git rev-parse --abbrev-ref HEAD
22
+ git status
23
+ ```
24
+
25
+ If on a protected branch (main, master, develop, qa, sandbox):
26
+
27
+ - ⚠️ Warn the user
28
+ - Suggest creating a feature branch: `feat/`, `fix/`, `chore/`
29
+ - Ask if they want to proceed anyway or create a branch first
30
+
31
+ 2. **Determine commit scope**
32
+
33
+ Ask the user (using AskUserQuestion):
34
+
35
+ - "What files should be included in this commit?"
36
+ - Option 1: "Only staged files (git commit)" (Recommended if files are staged)
37
+ - Option 2: "Stage and commit all changes (git add . && git commit)"
38
+ - Option 3: "Let me stage files manually first"
39
+
40
+ If option 3: Stop and let user stage files, then re-run this skill.
41
+
42
+ 3. **Analyze changes**
43
+
44
+ ```bash
45
+ git diff --staged # if only staged
46
+ # or
47
+ git diff # if staging all
48
+ ```
49
+
50
+ 4. **Generate semantic commit message(s)**
51
+
52
+ Based on the diff, propose 1-2 commit messages following conventional commits:
53
+
54
+ **Format:**
55
+
56
+ ```
57
+ type(scope): short description in present tense
58
+
59
+ Detailed explanation of WHY this change is needed.
60
+ Optional: Additional context, breaking changes, etc.
61
+
62
+ ```
63
+
64
+ **Types:**
65
+
66
+ - `feat`: New feature
67
+ - `fix`: Bug fix
68
+ - `chore`: Maintenance (dependencies, configs, etc.)
69
+ - `docs`: Documentation only
70
+ - `refactor`: Code restructuring (no behavior change)
71
+ - `test`: Adding/updating tests
72
+ - `perf`: Performance improvement
73
+
74
+ **Scope:** Optional, e.g., `(api)`, `(ui)`, `(auth)`
75
+
76
+ **Examples:**
77
+
78
+ ```
79
+ feat(auth): add JWT token refresh mechanism
80
+
81
+ Implements automatic token refresh before expiration to improve
82
+ user experience and reduce re-authentication requests.
83
+
84
+ ```
85
+
86
+ 5. **Show command before executing**
87
+
88
+ Display the exact git command that will be executed:
89
+
90
+ ```bash
91
+ git commit -m "$(cat <<'EOF'
92
+ type(scope): description
93
+
94
+ Detailed explanation
95
+
96
+ EOF
97
+ )"
98
+ ```
99
+
100
+ Use heredoc format to ensure proper multi-line formatting.
101
+
102
+ 6. **Execute commit**
103
+
104
+ After user confirmation, execute the command.
105
+ Then run `git status` to verify success.
106
+
107
+ **Guardrails**
108
+
109
+ - ❌ NEVER modify git config
110
+ - ❌ NEVER force push or use destructive commands
111
+ - ❌ NEVER skip hooks (--no-verify) unless explicitly requested
112
+ - ❌ NEVER commit sensitive files (.env, credentials, tokens)
113
+ - ⚠️ Warn before committing to protected branches
114
+ - ✅ Always use heredoc for multi-line commit messages
115
+
116
+ **Related Documentation**
117
+
118
+ - See `git-commits.md` for full commit conventions
@@ -0,0 +1,164 @@
1
+ ---
2
+ name: ancleto-pr
3
+ description: Create pull request in Azure DevOps following conventional commits (semantic title, detailed description, test plan)
4
+ license: MIT
5
+ compatibility: Requires Azure DevOps CLI (az repos)
6
+ metadata:
7
+ author: ancleto
8
+ version: '1.0'
9
+ category: git-workflow
10
+ ---
11
+
12
+ Create a pull request in Azure DevOps following semantic standards.
13
+
14
+ **When to use**: User wants to create a PR for their current branch.
15
+
16
+ **Steps**
17
+
18
+ 1. **Validate branch state**
19
+
20
+ ```bash
21
+ git rev-parse --abbrev-ref HEAD
22
+ git status
23
+ ```
24
+
25
+ **Checks:**
26
+
27
+ - ❌ If on protected branch (main, master, develop, qa, sandbox): Error and stop
28
+ - ⚠️ If uncommitted changes: Warn and suggest committing first
29
+ - ✅ If clean: Proceed
30
+
31
+ 2. **Check remote tracking**
32
+
33
+ ```bash
34
+ git rev-parse --abbrev-ref --symbolic-full-name @{u} 2>/dev/null
35
+ ```
36
+
37
+ If no upstream tracking:
38
+
39
+ - Suggest: `git push -u origin <branch-name>`
40
+ - Ask if they want to push now or do it manually
41
+
42
+ 3. **Determine base branch**
43
+
44
+ Ask the user (using AskUserQuestion):
45
+
46
+ - "What branch should this PR merge into?"
47
+ - Option 1: "main" (Recommended for most features)
48
+ - Option 2: "develop" (if using gitflow)
49
+ - Option 3: "Other (specify)"
50
+
51
+ 4. **Analyze all changes in the PR**
52
+
53
+ ```bash
54
+ git log <base-branch>..HEAD --oneline
55
+ git diff <base-branch>...HEAD --stat
56
+ ```
57
+
58
+ Review ALL commits that will be included, not just the latest one.
59
+
60
+ 5. **Generate PR title and description**
61
+
62
+ **Title format:** `type: Short description (<70 chars)`
63
+
64
+ - Use the same types as commits: feat, fix, chore, docs, etc.
65
+ - Keep concise, details go in description
66
+
67
+ **Description format:**
68
+
69
+ ```markdown
70
+ ## Summary
71
+
72
+ - Bullet point 1 of main changes
73
+ - Bullet point 2 of main changes
74
+ - Bullet point 3 of main changes
75
+
76
+ ## Technical Details
77
+
78
+ - Key implementation decisions
79
+ - Architecture changes (if any)
80
+ - Dependencies added/updated (if any)
81
+
82
+ ## Test Plan
83
+
84
+ - [ ] Unit tests pass (`npm test`)
85
+ - [ ] Integration tests pass (if applicable)
86
+ - [ ] Manual testing performed
87
+ - [ ] Tested on [environment/browser/device]
88
+ - [ ] Edge cases covered
89
+
90
+ ## Breaking Changes
91
+
92
+ _None_ OR _List breaking changes and migration steps_
93
+
94
+ ## Related Issues
95
+
96
+ - Closes #123 (if applicable)
97
+ - Related to #456 (if applicable)
98
+
99
+ ---
100
+
101
+ 🤖 Generated with [OpenCode](https://opencode.ai)
102
+ ```
103
+
104
+ 6. **Show PR command before executing**
105
+
106
+ Display the exact `az repos pr create` command:
107
+
108
+ ```bash
109
+ az repos pr create \
110
+ --title "feat: add user authentication" \
111
+ --description "$(cat <<'EOF'
112
+ ## Summary
113
+ ...
114
+
115
+ 🤖 Generated with OpenCode
116
+ EOF
117
+ )" \
118
+ --source-branch <current-branch> \
119
+ --target-branch <base-branch>
120
+ ```
121
+
122
+ Use heredoc for description to ensure proper formatting.
123
+
124
+ 7. **Create PR**
125
+
126
+ After user confirmation, execute the command.
127
+
128
+ **On success:**
129
+
130
+ - Show the PR URL
131
+ - Suggest next steps: request reviewers, link work items, etc.
132
+
133
+ **On error:**
134
+
135
+ - If "az not found": Install Azure CLI and authenticate
136
+ - If "not authenticated": Run `az login`
137
+ - If other errors: Show error and suggest manual PR creation
138
+
139
+ **Guardrails**
140
+
141
+ - ❌ NEVER create PR from protected branches
142
+ - ❌ NEVER force push before creating PR
143
+ - ⚠️ Warn if uncommitted changes exist
144
+ - ✅ Always analyze ALL commits in the branch, not just the latest
145
+ - ✅ Include test plan checklist
146
+ - ✅ Use heredoc for multi-line description
147
+ - ✅ Add "Generated with OpenCode" footer
148
+
149
+ **Alternative: GitHub PRs**
150
+
151
+ If using GitHub instead of Azure DevOps, use `gh pr create`:
152
+
153
+ ```bash
154
+ gh pr create \
155
+ --title "feat: add user authentication" \
156
+ --body "$(cat <<'EOF'
157
+ ...
158
+ EOF
159
+ )"
160
+ ```
161
+
162
+ **Related Documentation**
163
+
164
+ - See `CONTRIBUTING.md` for the PR review process
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: ancleto-technical-discovery
3
+ description: >
4
+ Use for ANY question about a repository whose answer spans more than one file: what the
5
+ repo is and how it works, architecture, domains, end-to-end flows, business rules and
6
+ where they live, impact of a change, onboarding. Answers from the technical seed in
7
+ docs/technical-discovery/ instead of sweeping the repo, and generates or updates that
8
+ seed when it is missing, partial, or stale. ALWAYS use it — never sweep the repo by hand
9
+ — including vague requests such as "explicame este repo", "explicame cómo funciona este
10
+ repo", "de qué trata este proyecto", "cómo está armado este repo", "explicame la
11
+ arquitectura", "explorá/analizá el repositorio", "dame un overview del proyecto", or
12
+ "onboarding", and their English equivalents. Skip it only when a single known symbol,
13
+ file, or line directly answers the question.
14
+ license: MIT
15
+ metadata:
16
+ author: ancleto
17
+ version: '2.3'
18
+ category: discovery
19
+ ---
20
+
21
+ # ancleto-technical-discovery
22
+
23
+ The technical seed is a compact, navigable map rather than a repository inventory. It
24
+ preserves the facts that prevent repeated exploration: architecture, entry points,
25
+ business rules, integrations, risks, and coupling. **Every document generated by this
26
+ skill must be written in Spanish**, including headings, tables, descriptions, findings,
27
+ and frontmatter values intended for readers.
28
+
29
+ The CLI packages the repository and computes state; this skill decides which information
30
+ belongs in the seed. When invoked by `@technical-seed-writer`, do not delegate generation
31
+ further or create one subagent per unit: generation happens in one sequential execution.
32
+
33
+ ## When to use it
34
+
35
+ - Default: any question that needs repository context, however vaguely phrased, starts
36
+ here. Run `ancleto discovery --check` first and follow this flow.
37
+ - Only exception: when one symbol, file, or line directly answers the question, read the
38
+ code directly.
39
+
40
+ | State | Action |
41
+ | --- | --- |
42
+ | `READY` | Read `index.md` and at most two documents it routes to. |
43
+ | `PARTIAL` | Complete only the missing documents. |
44
+ | `STALE` | Regenerate only the affected focused dossier; update a transversal decision when it changed. |
45
+ | `MISSING` | Generate the concise seed. |
46
+
47
+ Never replace a missing seed with a manual repository sweep.
48
+
49
+ ## Concise generation
50
+
51
+ Read `references/generation-pipeline.md` and `references/output-contract.md`. In short:
52
+
53
+ 1. Use the single global pack specified in the pipeline. Its output is the complete context
54
+ for this generation; never run a preliminary pack, a second compressed pack.
55
+ 2. Write all required root documents and `units/_map.md` from that pack before answering
56
+ the repository question.
57
+ 3. Select at most **three** dossiers only when the same global pack contains enough evidence
58
+ to explain a high-impact flow, rule, integration, or risk. Represent all other units in
59
+ `units/_map.md` with their purpose and entry point.
60
+ 4. Close with `inventory.md` using directories or globs, never one row per file.
61
+
62
+ Do not create empty documents merely to fill a fixed list. Record absent or unproven
63
+ evidence briefly in `unknowns.md`. Do not include secrets: name the variable or file and
64
+ always omit the value.
65
+
66
+ ## Reading
67
+
68
+ 1. Read `index.md`.
69
+ 2. Select a single reading path.
70
+ 3. Open only that destination and, if needed, one linked dossier.
71
+ 4. Answer in Spanish and cite the paths referenced by the seed.
72
+
73
+ The seed provides orientation. To confirm a specific or recently changed detail, read only
74
+ the cited source file.
@@ -0,0 +1,8 @@
1
+ # Archetype: layered API
2
+
3
+ Signals: controllers, services, repositories, and dependency registration.
4
+
5
+ Prioritize dossiers for resources with write operations, complex authorization, or rules
6
+ distributed across layers. In the Spanish unit map, link each resource to representative
7
+ routes and controller, service, and persistence paths. Record HTTP contracts and unauthenticated
8
+ routes in Spanish in `decisions.md`.
@@ -0,0 +1,8 @@
1
+ # Archetype: monorepo
2
+
3
+ Signals: workspaces, `nx.json`, `turbo.json`, `pnpm-workspace.yaml`, or several manifests.
4
+
5
+ `units/_map.md` must summarize every workspace in Spanish with its purpose, entry point,
6
+ and direct dependencies. Choose dossiers only for up to three workspaces that connect
7
+ products, expose a shared API, or concentrate a critical rule. Root configuration belongs
8
+ in `setup.md`.
@@ -0,0 +1,7 @@
1
+ # Archetype: operational tooling
2
+
3
+ Signals: manual commands, scripts, filesystem outputs, and environment selection.
4
+
5
+ Prioritize dossiers for operations that write outside the repository or reach production.
6
+ In Spanish, `decisions.md` must describe the destination, reversibility, and required
7
+ confirmations without repeating the full implementation.
@@ -0,0 +1,7 @@
1
+ # Archetype: hybrid legacy service
2
+
3
+ Signals: server views, JavaScript served as static assets, and configuration-borne rules.
4
+
5
+ Prioritize rules that cross server, DOM, and client, especially when two implementations
6
+ exist. Describe divergence in Spanish in `decisions.md`; create a dossier only when the
7
+ complete flow is useful for future changes.
@@ -0,0 +1,7 @@
1
+ # Archetype: SPA
2
+
3
+ Signals: a client router, bundler, components, and shared state.
4
+
5
+ The Spanish map must identify routes, state, HTTP client, and design system. Prioritize a
6
+ dossier for a flow connecting an API response to a rendered value, or for a highly coupled
7
+ boundary. Avoid a dossier per screen or component.
@@ -0,0 +1,24 @@
1
+ # Discovery configuration (`.ancletorc`)
2
+
3
+ `.ancletorc` is a JSON file at the repository root. `ancleto init` owns its installation fields
4
+ (`version`, `installedAt`, `profile`, `tool`, and `installedPaths`) and preserves the team's
5
+ `discovery` section when the tooling is reinstalled. The technical-discovery skill must never
6
+ rewrite any part of this file.
7
+
8
+ The optional `discovery` object configures the technical seed:
9
+
10
+ | Key | Meaning | Default |
11
+ | --- | --- | --- |
12
+ | `outputDir` | Relative directory for generated seed documents. | `docs/technical-discovery` |
13
+ | `archetype` | `auto`, `monorepo`, `api-layered`, `spa`, `ops-tooling`, or `service-legacy`. | `auto` |
14
+ | `readBudgetTokens` | Reading budget for a focused dossier. | `6000` |
15
+ | `exclude` | Extra glob patterns omitted from packs, coverage, and source hashes. | CLI defaults |
16
+
17
+ `node_modules` and `.git` are always excluded, even when the team supplies its own list.
18
+ When `exclude` is configured, it supplements those structural exclusions; it does not replace
19
+ them.
20
+
21
+ Never read `.ancletorc` directly during generation. Run `ancleto discovery --check` and use the
22
+ returned `config`, which has already validated the file, applied defaults, and reported any
23
+ unknown configuration keys. Pass its resolved exclusions to the one Repomix command as
24
+ described by `generation-pipeline.md`.
@@ -0,0 +1,56 @@
1
+ # Concise generation pipeline
2
+
3
+ Generation prioritizes signal over literal coverage. It runs in one sequential execution
4
+ with no subagents and exactly **one** Repomix pack. The result contains eight base documents
5
+ and up to three focused dossiers. All generated documents must be written in Spanish.
6
+
7
+ ## 1. Global map
8
+
9
+ First run `ancleto discovery --check` and read its JSON. Its `config` is the resolved
10
+ `discovery` section of `.ancletorc`, including defaults, so it is the only configuration source
11
+ for this execution. Use `config.outputDir` as the only output location and copy the resolved
12
+ `config.exclude` globs into the pack command. Do not parse, create, or edit `.ancletorc` yourself.
13
+ Then run exactly once:
14
+
15
+ ```bash
16
+ ancleto discovery --compress --ignore "<config.exclude joined by commas>"
17
+ ```
18
+
19
+ `--check` and the final validation do not create packs. Do **not** run an uncompressed pack
20
+ first, do not run `--compress` a second time, and do not run `--include`: the single global
21
+ pack is sufficient context for every document in this seed. The CLI also merges
22
+ `discovery.exclude`; passing the resolved list makes the exclusion scope explicit and must
23
+ not be replaced with an empty `--ignore` flag.
24
+
25
+ Read the pack path printed by that one command. From its contents, identify the archetype,
26
+ entry points, main boundaries, and candidate units, then immediately write these Spanish
27
+ documents under `config.outputDir`:
28
+
29
+ - `index.md`: question router.
30
+ - `overview.md`: purpose, architecture, components, and main journeys.
31
+ - `setup.md`: commands, environments, variable names, and operational conventions.
32
+ - `decisions.md`: rules, contracts, risks, debt, or coupling that affect technical choices.
33
+ - `integrations.md`: external systems and observable private dependencies.
34
+ - `units/_map.md`: a compact table of relevant units, their purpose, entry point, and dossier when present.
35
+ - `unknowns.md`: evidence limits.
36
+ - `inventory.md`: covered directories or globs.
37
+
38
+ ## 2. Focused dossiers
39
+
40
+ Select zero to three units in this order: critical business flow, component boundary,
41
+ external integration, configuration-borne rule, or change risk. Create
42
+ `units/<unit>.md` from the **same global pack** with the dossier template; do not run another
43
+ command to refine its context. If the global pack does not establish enough evidence, omit
44
+ the dossier and record the evidence limit in `unknowns.md`.
45
+
46
+ A dossier is not a transcript: it describes responsibilities, flow, rules, and key paths.
47
+ When it exceeds `readBudgetTokens`, keep only facts that answer cross-cutting questions;
48
+ do not split it or create child documents.
49
+
50
+ ## 3. Close and update
51
+
52
+ Run `ancleto discovery --check` once more and apply `validation-checklist.md`. This is a
53
+ state-only validation; it must not be followed by another Repomix command. For stale nodes,
54
+ regenerate only the affected documents using one new global generation on a later request.
55
+ If a unit has no dossier, update its row in `units/_map.md` and only the root documents whose
56
+ content changed.
@@ -0,0 +1,30 @@
1
+ # Seed frontmatter
2
+
3
+ Every generated document declares its purpose and provenance in YAML. Reader-facing values,
4
+ including `read_when`, must be written in Spanish.
5
+
6
+ | Field | Required | Purpose |
7
+ | --- | --- | --- |
8
+ | `node` | yes | Relative identifier within the seed. |
9
+ | `kind` | yes | `router`, `overview`, `setup`, `decisions`, `integrations`, `inventory`, `unknowns`, or `dossier`. |
10
+ | `read_when` | yes | Question class answered by the document, in Spanish. |
11
+ | `sources` | dossiers only | Globs for relevant sources. |
12
+ | `sourcesSha` | dossiers only | CLI-computed hash for those globs. |
13
+ | `generatedAt` | yes | Generation timestamp. |
14
+ | `pluginVersion` | yes | Plugin version reported by the CLI. |
15
+ | `skillVersion` | yes | This skill version. |
16
+
17
+ The generated dossier frontmatter must follow this Spanish example:
18
+
19
+ ```yaml
20
+ ---
21
+ node: units/pagos
22
+ kind: dossier
23
+ read_when: preguntas sobre el cobro y sus reglas
24
+ sources: ["apps/api/pagos/**", "libs/pagos/**"]
25
+ sourcesSha: <hash>
26
+ generatedAt: <ISO timestamp>
27
+ pluginVersion: <version>
28
+ skillVersion: '2.3'
29
+ ---
30
+ ```
@@ -0,0 +1,36 @@
1
+ # Output contract
2
+
3
+ The seed is concise, verifiable, and entirely written in Spanish. It does not cover every
4
+ file; it covers the decisions and paths an agent should not need to reconstruct from
5
+ scratch.
6
+
7
+ ## Configuration, provenance, and legacy layouts
8
+
9
+ `.ancletorc` is the repository-level configuration and installation record maintained by
10
+ `ancleto init`. Its optional `discovery` section configures the seed's `outputDir`,
11
+ `archetype`, `readBudgetTokens`, and extra `exclude` globs. The skill consumes the resolved
12
+ copy returned by `ancleto discovery --check`; it never edits `.ancletorc` and does not treat it as
13
+ seed content or evidence.
14
+
15
+ ## Include
16
+
17
+ - Architecture, entry points, and component boundaries.
18
+ - Business rules in configuration or duplicated across locations.
19
+ - Integrations, observable contracts, and private dependencies.
20
+ - Risks, coupling, and the impact of changing a component.
21
+ - Key paths that allow each claim to be checked.
22
+
23
+ Classify claims as `declarado`, `observado`, `inferido` (with confidence), `conflictivo`,
24
+ or `desconocido`. Do not invent facts; put evidence limits in `unknowns.md`.
25
+
26
+ ## Size limits
27
+
28
+ - Root documents are dense and brief; do not repeat the same fact in several documents.
29
+ - Generate at most three focused dossiers.
30
+ - A dossier cites only files that explain its behaviour. It has no per-file or per-directory inventory.
31
+ - `inventory.md` uses globs or directories as orientation, not as an audit.
32
+
33
+ ## Secrets
34
+
35
+ Never copy credential values. Name the variable, key, or file and state that its value was
36
+ omitted. Record the relevant risk in `decisions.md`.
@@ -0,0 +1,38 @@
1
+ # Focused dossier template
2
+
3
+ Use only for one of up to three high-impact units. Instructions are in English, but the
4
+ generated document must use the following Spanish structure and Spanish prose.
5
+
6
+ ```markdown
7
+ ---
8
+ node: units/<unidad>
9
+ kind: dossier
10
+ read_when: preguntas sobre <flujo, regla o integración>
11
+ covers: [<temas>]
12
+ sources: ["<globs>"]
13
+ sourcesSha: <hash from CLI>
14
+ generatedAt: <ISO timestamp>
15
+ pluginVersion: <version from report>
16
+ skillVersion: '2.3'
17
+ ---
18
+
19
+ # <Unidad>
20
+
21
+ ## Propósito
22
+
23
+ <Qué resuelve y por qué importa.>
24
+
25
+ ## Recorrido relevante
26
+
27
+ <Entrada → transformación → salida, con paths clave.>
28
+
29
+ ## Reglas, contratos y riesgos
30
+
31
+ <Solo los hallazgos que afectan decisiones o cambios.>
32
+
33
+ ## Paths clave
34
+
35
+ | Path | Rol |
36
+ | --- | --- |
37
+ | `<path>` | <rol verificable> |
38
+ ```
@@ -0,0 +1,22 @@
1
+ # Scope inventory template
2
+
3
+ `inventory.md` provides coverage orientation, not a file list. Instructions are in English;
4
+ the generated document and its table values must be in Spanish.
5
+
6
+ ```markdown
7
+ ---
8
+ node: inventory
9
+ kind: inventory
10
+ read_when: verificar el alcance documentado de la semilla
11
+ generatedAt: <ISO timestamp>
12
+ pluginVersion: <version from report>
13
+ skillVersion: '2.3'
14
+ ---
15
+
16
+ # Alcance documentado
17
+
18
+ | Alcance | Documento | Motivo |
19
+ | --- | --- | --- |
20
+ | `apps/**` | `overview.md` | Entrypoints y composición principal |
21
+ | `libs/pagos/**` | `units/pagos.md` | Flujo comercial crítico |
22
+ ```
@@ -0,0 +1,27 @@
1
+ # Setup template
2
+
3
+ `setup.md` records only the operational information needed to run, test, and orient within
4
+ the repository. The generated document must use Spanish and never copy secret values.
5
+
6
+ ```markdown
7
+ ---
8
+ node: setup
9
+ kind: setup
10
+ read_when: preparar el entorno o ejecutar los comandos principales
11
+ generatedAt: <ISO timestamp>
12
+ pluginVersion: <version from report>
13
+ skillVersion: '2.3'
14
+ ---
15
+
16
+ # Setup
17
+
18
+ ## Comandos principales
19
+
20
+ | Objetivo | Comando | Fuente |
21
+ | --- | --- | --- |
22
+ | <objetivo> | `<comando>` | `<path>` |
23
+
24
+ ## Entornos y variables
25
+
26
+ <Nombre de variable, propósito y path de referencia; nunca su valor.>
27
+ ```
@@ -0,0 +1,12 @@
1
+ # Validation checklist
2
+
3
+ - [ ] Every generated document is in Spanish.
4
+ - [ ] Required root documents exist and `ancleto discovery --check` reports `READY`.
5
+ - [ ] The resolved `config` from `ancleto discovery --check` was used; `.ancletorc` was not edited.
6
+ - [ ] There are at most three dossiers under `units/` (excluding `_map.md`).
7
+ - [ ] `index.md` lets a reader choose a destination without reading sibling documents.
8
+ - [ ] Each relevant claim cites a path and states its evidence when it is not direct.
9
+ - [ ] `decisions.md` concentrates rules, risks, and coupling without duplicating the overview.
10
+ - [ ] `inventory.md` declares directories or globs, not file lists.
11
+ - [ ] `unknowns.md` records what could not be verified.
12
+ - [ ] No secret values are present.