abstractskill 0.3.0__tar.gz → 0.3.2__tar.gz

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 (87) hide show
  1. {abstractskill-0.3.0/src/abstractskill.egg-info → abstractskill-0.3.2}/PKG-INFO +1 -1
  2. {abstractskill-0.3.0 → abstractskill-0.3.2}/pyproject.toml +1 -1
  3. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/__init__.py +1 -1
  4. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/catalog.yaml +1 -1
  5. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/coredoc/SKILL.md +39 -12
  6. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/coredoc/agents/openai.yaml +1 -1
  7. abstractskill-0.3.2/src/abstractskill/registry/skills/coredoc/references/agent-skill.md +329 -0
  8. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/coredoc/references/core-doc-set.md +22 -1
  9. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/coredoc/references/llms-files.md +9 -1
  10. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/coredoc/references/maintenance-playbook.md +9 -1
  11. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/validations.yaml +11 -6
  12. {abstractskill-0.3.0 → abstractskill-0.3.2/src/abstractskill.egg-info}/PKG-INFO +1 -1
  13. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill.egg-info/SOURCES.txt +1 -0
  14. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_bundled.py +2 -2
  15. {abstractskill-0.3.0 → abstractskill-0.3.2}/LICENSE +0 -0
  16. {abstractskill-0.3.0 → abstractskill-0.3.2}/README.md +0 -0
  17. {abstractskill-0.3.0 → abstractskill-0.3.2}/setup.cfg +0 -0
  18. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/bundled.py +0 -0
  19. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/catalog.py +0 -0
  20. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/demand.py +0 -0
  21. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/errors.py +0 -0
  22. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/hash.py +0 -0
  23. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/loader.py +0 -0
  24. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/models.py +0 -0
  25. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/parser.py +0 -0
  26. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/policy.py +0 -0
  27. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/prompt.py +0 -0
  28. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/advisories.yaml +0 -0
  29. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/guidance.yaml +0 -0
  30. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/licenses/meshvault-live-editing.LICENSE +0 -0
  31. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/licenses/verification-before-completion.LICENSE +0 -0
  32. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/abstractframework-gateway/SKILL.md +0 -0
  33. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/adr/SKILL.md +0 -0
  34. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/adr/agents/openai.yaml +0 -0
  35. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/adr/references/adr-template-and-workflow.md +0 -0
  36. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/adr/references/default-adr-catalog.md +0 -0
  37. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/adr/references/reader-first-adr-style.md +0 -0
  38. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/adversarial-iteration/SKILL.md +0 -0
  39. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/agora-collaboration/SKILL.md +0 -0
  40. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/agora-collaboration/references/failure-ledger.md +0 -0
  41. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/agora-collaboration/references/mechanics.md +0 -0
  42. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/architect/SKILL.md +0 -0
  43. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/architect/agents/openai.yaml +0 -0
  44. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/architect/references/reviewer-memory.md +0 -0
  45. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/backlog/SKILL.md +0 -0
  46. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/backlog/agents/openai.yaml +0 -0
  47. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/backlog/references/abstractframework-board.md +0 -0
  48. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/backlog/references/hub-work-join.md +0 -0
  49. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/backlog/references/layout-and-templates.md +0 -0
  50. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/backlog/references/maintenance-checklists.md +0 -0
  51. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/cicd/SKILL.md +0 -0
  52. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/cicd/agents/openai.yaml +0 -0
  53. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/cicd/references/docs-and-containers.md +0 -0
  54. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/cicd/references/maintenance-playbook.md +0 -0
  55. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/cicd/references/package-publishing.md +0 -0
  56. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/cicd/references/repository-setup.md +0 -0
  57. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/cicd/references/workflow-patterns.md +0 -0
  58. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/entity-observation/SKILL.md +0 -0
  59. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/entity-self-knowledge/SKILL.md +0 -0
  60. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/entity-self-knowledge/references/capability_map.md +0 -0
  61. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/meshvault-live-editing/SKILL.md +0 -0
  62. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/review/SKILL.md +0 -0
  63. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/review/agents/openai.yaml +0 -0
  64. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/review/references/reviewer-memory.md +0 -0
  65. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/uxreview/SKILL.md +0 -0
  66. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/uxreview/agents/openai.yaml +0 -0
  67. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/uxreview/references/reviewer-memory.md +0 -0
  68. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/registry/skills/verification-before-completion/SKILL.md +0 -0
  69. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/selection.py +0 -0
  70. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/tree.py +0 -0
  71. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/trust.py +0 -0
  72. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill/validation.py +0 -0
  73. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill.egg-info/dependency_links.txt +0 -0
  74. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill.egg-info/requires.txt +0 -0
  75. {abstractskill-0.3.0 → abstractskill-0.3.2}/src/abstractskill.egg-info/top_level.txt +0 -0
  76. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_audience.py +0 -0
  77. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_catalog.py +0 -0
  78. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_demand.py +0 -0
  79. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_loader.py +0 -0
  80. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_parser.py +0 -0
  81. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_policy.py +0 -0
  82. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_refresh_shelf_pins.py +0 -0
  83. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_selection.py +0 -0
  84. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_shelf.py +0 -0
  85. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_tree.py +0 -0
  86. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_trust.py +0 -0
  87. {abstractskill-0.3.0 → abstractskill-0.3.2}/tests/test_vendor_script.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractskill
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Agent Skills (SKILL.md) parsing, discovery, trust gating, and demand derivation for AbstractFramework
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "abstractskill"
7
- version = "0.3.0"
7
+ version = "0.3.2"
8
8
  description = "Agent Skills (SKILL.md) parsing, discovery, trust gating, and demand derivation for AbstractFramework"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -140,4 +140,4 @@ __all__ = [
140
140
  "validate_skill_name",
141
141
  ]
142
142
 
143
- __version__ = "0.3.0"
143
+ __version__ = "0.3.2"
@@ -16,7 +16,7 @@
16
16
  # four yaml files shipped in the abstractskill wheel). Bump it whenever any
17
17
  # of that content changes; seed_registry() records it in <dest>/.seeded.json
18
18
  # and tests/test_bundled.py pins it to a content digest.
19
- version: "2026.09.25"
19
+ version: "2026.10.21"
20
20
 
21
21
  skills:
22
22
 
@@ -1,13 +1,15 @@
1
1
  ---
2
2
  name: coredoc
3
- description: Create, audit, normalize, and maintain a professional external-facing repository documentation system for users, contributors, and tools, including the core doc set, cross-linked topic deep dives, and faithful AI-readable `llms.txt` and `llms-full.txt` files. Use when Codex needs to bootstrap docs for a new repo, repair stale or missing project docs, add or revise `docs/*.md` pages, keep root and `docs/` documents coherent, or regenerate AI-actionable documentation indexes for LLMs and tooling.
3
+ description: Create, audit, normalize, and maintain a professional external-facing repository documentation system for users, contributors, and tools, including the core doc set, cross-linked topic deep dives, faithful AI-readable `llms.txt` and `llms-full.txt` files, and, when the package is something an agent can operate, a package agent skill at `skills/<name>/SKILL.md` that teaches other agents to use it. Use when Codex needs to bootstrap docs for a new repo, repair stale or missing project docs, add or revise `docs/*.md` pages, keep root and `docs/` documents coherent, regenerate AI-actionable documentation indexes for LLMs and tooling, or create and maintain the agent skill that lets other agents use the package like experts.
4
4
  ---
5
5
 
6
6
  # Core Doc
7
7
 
8
8
  Use this skill to make a repository explain itself clearly to external users, contributors, and
9
9
  tools. Core docs should teach what the package is, how it works, how to use it, and what current
10
- limits matter. Write in a professional, positive tone that addresses external readers directly.
10
+ limits matter. When the package is something an agent can operate, the docs also ship an agent
11
+ skill that turns them into an operating procedure for other agents. Write in a professional,
12
+ positive tone that addresses external readers directly.
11
13
  Prefer faithful, maintainable docs over aspirational prose. If the code and docs disagree, the
12
14
  code wins and the docs must be repaired.
13
15
 
@@ -19,6 +21,8 @@ code wins and the docs must be repaired.
19
21
  `references/core-doc-set.md`.
20
22
  - If the task is mainly about creating or repairing `llms.txt` or `llms-full.txt`, read
21
23
  `references/llms-files.md` before editing.
24
+ - On every pass, read `references/agent-skill.md` to decide whether the repository ships a
25
+ package agent skill, and to create, audit, or update it.
22
26
  - If the task is broad documentation maintenance, read
23
27
  `references/maintenance-playbook.md` and work through the audit flow.
24
28
  - If the user is preparing or publishing a specific release, prefer the `release` skill when
@@ -59,11 +63,11 @@ code wins and the docs must be repaired.
59
63
  measured, and what limits still matter.
60
64
  - Every core documentation page must answer stable user or contributor needs, not internal
61
65
  incidents. This applies to `README.md`, `CHANGELOG.md`, root policy docs, `docs/*.md`,
62
- `docs/examples/*.md`, `llms.txt`, and `llms-full.txt`, not only FAQ pages. Do not add headings,
63
- callouts, notes, tables, captions, changelog entries, or example prose like "Why did our previous
64
- result...", "What went wrong...", "we discovered...", or "this failed before..." to end-user
65
- docs. Convert them into neutral usage guidance such as "How to compare memory measurements" or
66
- put the analysis in backlog, ADRs, reports, or `untracked/comments/`.
66
+ `docs/examples/*.md`, `llms.txt`, `llms-full.txt`, and `skills/<name>/`, not only FAQ pages. Do
67
+ not add headings, callouts, notes, tables, captions, changelog entries, or example prose like "Why
68
+ did our previous result...", "What went wrong...", "we discovered...", or "this failed before..."
69
+ to end-user docs. Convert them into neutral usage guidance such as "How to compare memory
70
+ measurements" or put the analysis in backlog, ADRs, reports, or `untracked/comments/`.
67
71
  - Benchmark, quantization, and performance docs may include exact settings, hardware, command
68
72
  profiles, and metric definitions. They must not include personal commentary, blame, forensic
69
73
  narratives, release-gate drama, or explanations of documentation mistakes. If unrelated benchmark
@@ -73,7 +77,7 @@ code wins and the docs must be repaired.
73
77
  smoke-test instructions, "real model caveat" blocks, debugging narratives, or notes about how
74
78
  the documentation was generated. If that information matters only to the owner, maintainer, or
75
79
  developer, write it in `untracked/comments/<timestamp>_<topic>.md` instead, and keep it out of
76
- `README.md`, `CHANGELOG.md`, `docs/*.md`, `llms.txt`, and `llms-full.txt`.
80
+ `README.md`, `CHANGELOG.md`, `docs/*.md`, `llms.txt`, `llms-full.txt`, and `skills/<name>/`.
77
81
  - Keep the core doc set present even when a section is currently thin. If a doc is not yet
78
82
  applicable, say so explicitly instead of omitting it.
79
83
  - `docs/architecture.md` MUST contain at least one diagram that represents the system
@@ -104,10 +108,10 @@ code wins and the docs must be repaired.
104
108
  - Verify claims against repository evidence where possible: manifests, package metadata, entry
105
109
  points, CLI help, config files, schemas, examples, tests, and working commands.
106
110
  - Before finishing any core-doc update, scan the external-facing corpus (`README.md`,
107
- `CHANGELOG.md`, root policy docs, `docs/*.md`, `docs/examples/*.md`, `llms.txt`, and
108
- `llms-full.txt`) for incident/postmortem language, including headings, callouts, table notes,
109
- image captions, changelog bullets, and examples. Remove or move anything that reads as maintainer
110
- memory rather than user guidance.
111
+ `CHANGELOG.md`, root policy docs, `docs/*.md`, `docs/examples/*.md`, `llms.txt`, `llms-full.txt`,
112
+ and the package agent skill) for incident/postmortem language, including headings, callouts, table
113
+ notes, image captions, changelog bullets, and examples. Remove or move anything that reads as
114
+ maintainer memory rather than user guidance.
111
115
 
112
116
  ## Maintain The Core Set
113
117
 
@@ -129,6 +133,9 @@ code wins and the docs must be repaired.
129
133
  starter set or the repo is clearly internal and intentionally minimal.
130
134
  - For an existing project, normalize missing or stale files incrementally instead of rewriting
131
135
  everything at once.
136
+ - The package agent skill (`skills/<name>/SKILL.md`) is conditional, not part of the
137
+ always-present set. Create it only when the package passes the decision in
138
+ `references/agent-skill.md`.
132
139
 
133
140
  ## Maintain `llms.txt` And `llms-full.txt`
134
141
 
@@ -158,6 +165,24 @@ code wins and the docs must be repaired.
158
165
  caveats must live in the real docs first.
159
166
  - Follow the format and usage notes in `references/llms-files.md`.
160
167
 
168
+ ## Maintain The Package Agent Skill
169
+
170
+ - On every pass, make the agent-skill decision in `references/agent-skill.md` from repository
171
+ evidence, and state it with its evidence in your final report. Ship a skill when the repository
172
+ contains something an agent can operate and an agent with only the README would likely misuse
173
+ it. No skill is the default: never create one for documentation, content, or GUI-only
174
+ repositories, where reading the docs is the whole use.
175
+ - The skill lives at `skills/<name>/SKILL.md` and teaches agents to use the package, not to
176
+ develop it: its limits, the settings and defaults that cost time or money, its error contract,
177
+ a capability map (what exists, what does not, what it writes), an end-to-end workflow, verified
178
+ recipes, sharp edges, and failure fixes. It must work with no link reachable.
179
+ - Keep it faithful: every fact the skill states is also in the docs (when docs and code disagree,
180
+ fix the docs; mark defects as known issues), every snippet is verified at the highest safe
181
+ tier in an isolated run (never write or paid calls against a deployment you do not own), and it
182
+ changes in the same change as the API, CLI, or doc edits it describes.
183
+ - When the skill exists, `README.md` gets a "For AI agents" section inviting agents to register and
184
+ use it to become experts on the package, and `docs/README.md` and `llms.txt` link to it.
185
+
161
186
  ## Add Deep Dives When Relevant
162
187
 
163
188
  - Create `docs/<topic>.md` when a topic is too important or too detailed to live only inside
@@ -175,3 +200,5 @@ code wins and the docs must be repaired.
175
200
  - Read `references/core-doc-set.md` when creating or repairing the canonical doc set.
176
201
  - Read `references/maintenance-playbook.md` when doing broad documentation audits or cleanup.
177
202
  - Read `references/llms-files.md` when creating or updating `llms.txt` or `llms-full.txt`.
203
+ - Read `references/agent-skill.md` when deciding whether to ship a package agent skill, and when
204
+ creating, auditing, or updating one.
@@ -1,4 +1,4 @@
1
1
  interface:
2
2
  display_name: "Core Doc"
3
3
  short_description: "Build and maintain professional external-facing docs"
4
- default_prompt: "Use $coredoc to create or maintain a professional external-facing repository documentation set, keep llms.txt files faithful, and route maintainer-only notes to untracked/comments."
4
+ default_prompt: "Use $coredoc to create or maintain a professional external-facing repository documentation set, keep llms.txt files faithful, create or update the package agent skill when the decision in references/agent-skill.md calls for one, and route maintainer-only notes to untracked/comments."
@@ -0,0 +1,329 @@
1
+ # Package Agent Skill
2
+
3
+ Read this file on every coredoc pass. It decides whether the repository ships a package agent
4
+ skill, and it governs creating, auditing, and updating one.
5
+
6
+ ## What It Is
7
+
8
+ A package agent skill is an [Agent Skills](https://agentskills.io/) folder (`SKILL.md` plus
9
+ optional resources) that the repository ships so that any AI agent that wants to use the package
10
+ can load it and work like an expert user. After reading it, an agent knows when the package
11
+ applies and where it falls short, how to install and verify it, the few concepts and settings
12
+ that matter, the workflow an expert follows, the exact commands and code for the common tasks,
13
+ and the mistakes to avoid.
14
+
15
+ - It is a consumer artifact. It teaches how to use the package, not how to develop it. Contributor
16
+ workflows stay in `CONTRIBUTING.md`. Repository-local agent instructions (`AGENTS.md`,
17
+ `CLAUDE.md`, `.claude/skills/`, `.cursor/skills/`) serve people working on the repository and
18
+ are out of scope here.
19
+ - It complements `llms.txt`: `llms.txt` helps an agent find and read the docs; the skill turns the
20
+ docs into an operating procedure.
21
+ - The docs stay canonical. The skill is a faithful, task-shaped distillation of them.
22
+
23
+ ## Decide Whether The Repository Needs One
24
+
25
+ Decide from repository evidence (the code, entry points, public exports, CLI `--help`, service
26
+ definitions), not from README claims or self-descriptions. Re-run the decision on every pass.
27
+
28
+ No skill is the default. Create one only when both conditions hold:
29
+
30
+ 1. The repository contains the code of at least one surface an external agent can operate (the
31
+ repository's own build scripts, tests, CI, and docs tooling do not count):
32
+ - an importable library or SDK with public exports, including a UI component library (its
33
+ components, hooks, and styles are a library API);
34
+ - a CLI that does work (console scripts, `bin` entries, a `main` module meant for users);
35
+ - a service interface: HTTP/REST, RPC, WebSocket, MCP server, or tool definitions;
36
+ - a file format, config schema, or DSL that users write and the package consumes;
37
+ - a plugin or extension contract that users implement.
38
+ 2. An agent given only the README would likely misuse the package or miss its main capability,
39
+ because correct use takes several steps, concepts that must be held together, or sharp edges
40
+ that fail silently.
41
+
42
+ Do not create one when:
43
+
44
+ - the repository is documentation, content, notes, research, or data, and reading it is the whole
45
+ use. A manifest counts as evidence only when this repository contains the code it builds; a
46
+ published docs site with a `pyproject.toml` or `package.json` is still documentation;
47
+ - the only surface is a GUI. A CLI whose only job is to start the GUI (ports, URLs, open the
48
+ browser) is part of the GUI surface;
49
+ - the entire use is one obvious command that the README quick start already shows;
50
+ - the package has no stable entry points yet, so a skill would freeze guesses. Revisit when the
51
+ surface stabilizes.
52
+
53
+ State the decision and its evidence in your final report for the pass (for example "Agent skill:
54
+ created, the package exposes a Python API and the `foo` CLI" or "Agent skill: not created, the
55
+ repository is documentation only"). Do not add tracked files that record a negative decision.
56
+
57
+ Existing skills:
58
+
59
+ - An existing skill whose audience is an agent operating the package (its tools, CLI, or API) is
60
+ the package skill, wherever it lives under `skills/`. Keep its name and structure; do not
61
+ reshape it to the template below. Audit it against these rules and add only what is missing.
62
+ If another surface also passes the decision, add a section or a `references/<surface>.md` file
63
+ inside it instead of creating a second skill.
64
+ - Skills the package distributes as data for unrelated tasks (a skill registry or curated
65
+ collection) are product content, not the package skill. Never rewrite them under this rule.
66
+ - If the surface an existing package skill teaches was removed, remove the skill and record the
67
+ removal in `CHANGELOG.md`. Otherwise maintain it; never delete it to skip the work.
68
+
69
+ Scope:
70
+
71
+ - In a repository with several surfaces (server, SDKs, CLI, UI), teach the surface the docs
72
+ recommend to external users, and route operator, contributor, and in-process surfaces to their
73
+ docs.
74
+ - Default to one skill per repository. A monorepo with several packages gets one skill with a
75
+ `references/<package>.md` file for each package it teaches; split into separate skills only for
76
+ packages with unrelated audiences. Never create skills for nested repositories that this
77
+ repository does not track. Name a monorepo skill after the repository, not after a private
78
+ workspace root.
79
+ - For a meta-package or umbrella distribution, teach profile choice, install, and health checks,
80
+ and route to each component's own skill or docs by absolute URL, at the component versions this
81
+ distribution pins. Never restate component recipes.
82
+
83
+ ## Location And Naming
84
+
85
+ - Put the skill at `skills/<name>/SKILL.md` at the repository root. This path is
86
+ harness-neutral, visible on the code host, and installs as one folder copy.
87
+ - Default `<name>` to the package's distribution name, normalized: lowercase it, drop an npm
88
+ `@scope/` prefix, and turn `_`, `.`, `/`, and repeated hyphens into a single `-`
89
+ (`AbstractRuntime` becomes `abstractruntime`). The result must use lowercase letters, digits,
90
+ and single hyphens, start and end with a letter or digit, be at most 64 characters, and equal
91
+ the folder name.
92
+ - If a package skill already exists under another name, keep that name. Renaming breaks every
93
+ existing install.
94
+ - Coredoc does not change packaging. Shipping the skill inside a wheel or npm tarball is a
95
+ release-engineering decision for the maintainers, so do not add it. If the project already ships
96
+ a copy as package data, keep that copy identical.
97
+
98
+ ## Layout
99
+
100
+ ```text
101
+ skills/<name>/
102
+ SKILL.md # required: frontmatter and the operating guide
103
+ references/*.md # optional: deeper material the agent opens on demand
104
+ scripts/* # optional: runnable programs, rarely needed
105
+ ```
106
+
107
+ Keep `SKILL.md` under about 300 lines (roughly 3,000 to 5,000 tokens), because hosts load it whole
108
+ when the skill activates; shorter is better. Move material the main workflow does not need (a full
109
+ option table, an endpoint list, a schema, a second language, rare tasks) into `references/`, and
110
+ point to each file with one line saying when to open it.
111
+
112
+ The skill must work when none of its links can be reached: package hosts may be private, and
113
+ agents often run offline. Everything a recipe needs (result shapes, limits, error codes, the
114
+ options that matter) lives in `SKILL.md` or `references/`. Links are for going deeper.
115
+
116
+ ## Frontmatter
117
+
118
+ ```markdown
119
+ ---
120
+ name: <name>
121
+ description: <What the package does, in task terms.> Use when <the tasks, the import name, the CLI name, file types, or service names that should make an agent reach for it>.
122
+ license: <the package license, for example MIT>
123
+ compatibility: <only when needed: runtime, OS, network, server or API version, sign-in>
124
+ metadata:
125
+ package-version: "<version this skill teaches>"
126
+ ---
127
+ ```
128
+
129
+ - The `description` is all an agent sees before it decides to load the skill. Name the package,
130
+ its import or CLI names, and the concrete tasks it covers. Keep it at most 1,024 characters and
131
+ free of marketing language.
132
+ - `license` keeps the terms attached when the folder is copied away from `LICENSE`.
133
+ - Always set `metadata.package-version`: the released version of the surface the skill teaches,
134
+ the upcoming version when the pass prepares a release, or `unreleased` when the surface is still
135
+ under the changelog's Unreleased heading. Check it against `CHANGELOG.md`, and never claim a
136
+ release that predates the surface.
137
+ - Use `compatibility` (at most 500 characters) for what the skill needs to work: a runtime
138
+ version, an operating system, network access, the server or API version a client skill needs,
139
+ or sign-in to a private package host.
140
+
141
+ ## Body
142
+
143
+ For a new skill, write to the agent: imperative, terse, concrete, and faithful. Use these sections
144
+ in this order, and leave a section out only when it would truly be empty.
145
+
146
+ 1. **Purpose and limits.** Two to four sentences on what the package does and when to reach for
147
+ it, then what it is bad at, taken from the docs' limits or FAQ, with the documented
148
+ alternative. An agent that does not know the limits reports wrong results with confidence.
149
+ 2. **Install and verify.** The install command, and one verify step that proves the install
150
+ works and prints the installed version (and, for a client, the server or API version).
151
+ - The install command must work in a clean environment from the source it names (check with
152
+ `pip index versions <dist>`, `npm view <pkg> version`, or the equivalent). If the package is
153
+ not published, teach the documented source install and fix the docs that say otherwise.
154
+ - The verify step is the first thing an agent runs in a broken environment. It passes only on
155
+ a real result (non-empty output, the expected version), and reports each likely failure
156
+ (missing configuration or credential, unreachable endpoint, failed authentication, wrong
157
+ version) with a clear message instead of crashing. When the version is `unreleased`, it
158
+ checks what identifies the surface (an API version, a feature probe), and a missing
159
+ identifier fails.
160
+ - Tell the agent to compare the installed version with `metadata.package-version`; the docs of
161
+ the installed version win when they disagree with the skill. When the package needs a
162
+ credential, tell the agent to ask the user to put it in an environment variable (never in
163
+ the conversation), to pass it explicitly where the package could send an ambient one to the
164
+ wrong host, and to stop at the first authentication failure.
165
+ 3. **Mental model.** Three to seven bullets naming the concepts, objects, or resources an agent
166
+ must hold to reason about the package, and how they relate. Name the settings the user docs
167
+ present as a cost, time, or quality trade-off (a mode, tier, level, or model choice) and when
168
+ to pick each value, and the defaults that silently cost time or money, with their values
169
+ (timeouts, automatic retries, background downloads). State the package-wide error contract
170
+ once here (which exceptions or error results callers must handle, and where it differs by
171
+ backend), so recipes can rely on it.
172
+ 4. **Capability map.** One line per major capability, with its entry point (function, class,
173
+ command, or endpoint) and where the skill or its `references/` teach it, covering at least
174
+ everything the README presents. Then the capabilities users commonly expect that the package
175
+ does not have (for example "no built-in provider fallback: wrap calls yourself"), and its side
176
+ effects: files, caches, or configuration it writes, and network calls it makes. An agent should
177
+ never need to search the package to learn whether something exists.
178
+ 5. **Recipes.** Start with the end-to-end workflow an expert follows for the package's main job,
179
+ then the single tasks, ordered by how often users perform them in the package's main job (not
180
+ by how many doc examples a feature has). Teach tasks, not a tour of the API: rare calls go to
181
+ `references/`. For each recipe, give:
182
+ - a one-line goal;
183
+ - the minimal code or command, complete on its own with imports and real names (or starting
184
+ with a comment naming the recipe it continues), with clearly marked placeholders such as
185
+ `<MODEL_NAME>`, quoted in shell snippets;
186
+ - handling of the failure and empty cases specific to the task (a failed status, an optional
187
+ field that can be missing, an empty result, an unknown event type), relying on the error
188
+ contract from the mental model for the rest;
189
+ - what success looks like (output, return type, file produced), and the one or two options
190
+ that change the result.
191
+ 6. **Rules and sharp edges.** When calls cost money, take minutes, or change shared state, open
192
+ this section with them: which calls, the cheap way to answer first, and what to confirm with
193
+ the user. Then invariants and the mistakes an agent is most likely to make (wrong identifier,
194
+ wrong call order, wrong default, silent failures, credentials sent where they should not go),
195
+ each with how to avoid it. State each fact once in the skill; refer back instead of repeating.
196
+ 7. **When things fail.** The three to five most common error messages or symptoms, each with
197
+ cause and fix. Link to the troubleshooting page for the rest.
198
+ 8. **Go deeper.** Absolute links to the docs (getting started, API reference, troubleshooting,
199
+ `llms-full.txt`) and to the skill's own `references/` files, each with one line saying when to
200
+ open it.
201
+
202
+ ## Code: Snippets And Scripts
203
+
204
+ Code is how the skill turns knowledge into competence. Include it whenever the package has a
205
+ programmatic surface.
206
+
207
+ - Default to fenced snippets inside recipes. Each snippet must run as written once its marked
208
+ placeholders are filled.
209
+ - Add a file under `scripts/` only when the code would exceed about 30 lines as a snippet or must
210
+ run unattended, and the package provides no equivalent command in the environment the agent will
211
+ have. Hosts that gate skills by trust (AbstractSkill among them) treat files under `scripts/` and
212
+ code files anywhere in the folder as scripts and require review before activation, so a script
213
+ must be worth that cost.
214
+ - Every script must be self-contained (the package and the standard library only), start with a
215
+ header comment saying what it does and how to run it, read credentials only from environment
216
+ variables, be safe by default (no destructive, paid, or remote calls unless behind an explicit
217
+ argument), stay small and limited to the public API, and be referenced from `SKILL.md` with its
218
+ exact run command relative to the skill folder.
219
+
220
+ ## Faithfulness And Verification
221
+
222
+ Facts:
223
+
224
+ - Names, signatures, and field types may come from the public code. Behaviors, defaults, limits,
225
+ error codes, timings, and the result shapes a recipe branches on must be in the docs: before
226
+ finishing, list them and add any that the docs lack, in the same change. Never let the skill be
227
+ the only place a fact lives, and keep the docs' qualifiers ("a soft target of 30 s" must not
228
+ become "30 s").
229
+ - When the docs and the code disagree, the code wins: fix the docs. A fact several pages need is
230
+ stated once and linked from the others; fix every page that restates it. If a docstring is
231
+ stale, report it; do not edit code.
232
+ - When verification shows behavior that looks like a defect (an error that escapes the documented
233
+ contract, input silently ignored, a crash), do not document it as intended. Keep the documented
234
+ contract and add one line next to it ("Known issue (<version>): <behavior>. Workaround:
235
+ <workaround>."); that line is the doc source for the workaround the skill teaches. Test the
236
+ workaround on the exact calls the recipe makes, and list the defect with a reproduction in the
237
+ pass report.
238
+ - When the package fronts several backends (providers, engines, databases, platforms), find its
239
+ distinct code paths (from the class hierarchy or dispatch code), list them in the pass report,
240
+ verify each claim on one backend per path, and label backend-specific behavior as such. Never
241
+ generalize one backend's behavior to the rest.
242
+ - Teach what every user of the package meets, never facts from your own pass: your credentials,
243
+ your deployment, or problems you hit while verifying belong in the pass report.
244
+ - Use only the public, documented API.
245
+
246
+ Running what you publish:
247
+
248
+ - Run every snippet and script at the highest tier you can reach safely, and record the tier in
249
+ the pass report: (1) live, with read-only calls only, labeled "1 (stand-in: <server>)" when a
250
+ local server speaking the same protocol stands in for the real service; (2) through the real
251
+ package against the repository's own recorded fixtures or test server; (3) checked against
252
+ code and tests, or run against a mock you built, which proves names and signatures, not
253
+ behavior. A snippet's tier is the lowest tier of the calls it depends on, given per backend for
254
+ backend-neutral snippets.
255
+ - Run the failure cases the skill names, plus one unreachable-endpoint run per backend code path.
256
+ A snippet that crashes there, or reports success on an empty or truncated result, is wrong even
257
+ if the docs show it: fix both.
258
+ - Never run write, delete, or paid calls against a deployment you do not own. Stop at the first
259
+ authentication failure, never retry a login, and test authentication failures only by sending
260
+ no credential, never an invented, old, or borrowed one.
261
+ - Isolate the run: unset real credentials, point configuration at a scratch directory (for
262
+ example a temporary `HOME`), and point the client base-URL variables at a closed loopback port,
263
+ so a snippet without an explicit endpoint fails locally. To run a cloud client against a local
264
+ stand-in, pass the stand-in URL and any placeholder key as arguments in that call only, never
265
+ in environment variables.
266
+
267
+ Maintenance:
268
+
269
+ - Update the skill in the same change as the API, CLI, configuration, or doc edits it describes,
270
+ exactly as with `llms.txt` and `llms-full.txt`, and audit names, defaults, limits, error
271
+ messages, `metadata.package-version`, and links on every pass.
272
+ - The external-facing rules of the core docs apply: no maintainer notes, no incident history, no
273
+ documentation-generation commentary, and no time-relative wording.
274
+
275
+ ## Links
276
+
277
+ The skill is copied out of the repository when someone installs it, so relative links into the
278
+ repository break.
279
+
280
+ - Link to repository docs with absolute raw-file URLs that return Markdown: on GitHub
281
+ `https://raw.githubusercontent.com/<owner>/<repo>/<ref>/<path>`, on GitLab
282
+ `<repository URL>/-/raw/<ref>/<path>`. Link to a hosted docs site only with page URLs you have
283
+ checked. When the host requires sign-in, say so in `compatibility`.
284
+ - `<ref>` is the tag of `metadata.package-version` when that tag already contains the skill
285
+ folder, and otherwise the code host's default branch (`git ls-remote --symref
286
+ <repository URL> HEAD`, not the clone's `origin/HEAD`). Switch to the version tag in the first
287
+ release that ships the skill.
288
+ - Link to the skill's own files with relative paths (`references/<file>.md`, `scripts/<file>`).
289
+ - Check that `<ref>` contains the skill folder and every path the skill or its README snippet
290
+ links or installs (`git ls-tree -r --name-only <ref> -- <paths>`). If it does not yet (an
291
+ unmerged branch, an untagged release), still add the skill and its pointers in this change, and
292
+ state in the pass report that they resolve once the change reaches `<ref>`.
293
+
294
+ ## Point The Docs At The Skill
295
+
296
+ When the skill exists, the docs must tell agents about it:
297
+
298
+ - `README.md`: a short section like the one below. Use absolute URLs, because package indexes
299
+ such as PyPI and npm render the README away from the repository. Fill in the real repository
300
+ URL, `<ref>`, skill name, and skill folder URL (on GitHub
301
+ `<repository URL>/tree/<ref>/skills/<name>`, on GitLab
302
+ `<repository URL>/-/tree/<ref>/skills/<name>`). When `<ref>` already contains the skill, run the
303
+ snippet once.
304
+
305
+ ~~~markdown
306
+ ## For AI agents
307
+
308
+ If you are an AI agent, you can register and use our agent skill
309
+ [`<name>`](<skill folder URL>) to become an expert on this package. Install it by copying the
310
+ `skills/<name>/` folder of the version you use into your agent's skills directory (for example
311
+ `~/.claude/skills` for Claude Code; see your agent's documentation for its skills directory):
312
+
313
+ ```bash
314
+ SKILLS_DIR=~/.claude/skills
315
+ tmp="$(mktemp -d)"
316
+ git clone --depth 1 --branch <ref> <repository URL> "$tmp" \
317
+ && mkdir -p "$SKILLS_DIR" && cp -R "$tmp/skills/<name>" "$SKILLS_DIR/" \
318
+ && echo "installed: $SKILLS_DIR/<name>"
319
+ rm -rf "$tmp"
320
+ ```
321
+ ~~~
322
+
323
+ Update `<ref>` in the same change as `metadata.package-version`.
324
+ - `docs/README.md`: list the skill in the index with one line on what it is for.
325
+ - `llms.txt`: an `## Agent Skill` section linking to `SKILL.md`, as shown in
326
+ `references/llms-files.md`.
327
+ - `CHANGELOG.md`: record when the skill is added, removed, or changes in a way its users notice.
328
+
329
+ When there is no skill, add none of these.
@@ -53,6 +53,13 @@ preferred baseline, not a universal law for every tiny or internal repo.
53
53
  - `llms-full.txt`
54
54
  - expanded aggregate of the core docs when this profile is adopted
55
55
 
56
+ ## Conditional Agent Skill
57
+
58
+ - `skills/<name>/SKILL.md`
59
+ - an agent skill that teaches other AI agents to use the package, shipped only when the
60
+ repository passes the decision in `agent-skill.md`, which also owns its layout, content, and
61
+ verification rules
62
+
56
63
  ## Default Layout
57
64
 
58
65
  ```text
@@ -73,6 +80,11 @@ docs/
73
80
  faq.md
74
81
  troubleshooting.md
75
82
  <topic>.md
83
+ skills/ # only when the package passes the agent-skill decision
84
+ <name>/
85
+ SKILL.md
86
+ references/ # optional
87
+ scripts/ # optional
76
88
  ```
77
89
 
78
90
  ## Cross-Link Expectations
@@ -92,6 +104,10 @@ docs/
92
104
  - `docs/troubleshooting.md` should link back to the relevant setup, API, architecture, FAQ, or
93
105
  topic page for each symptom.
94
106
  - `CONTRIBUTING.md` should point contributors to architecture, API, changelog, and security docs.
107
+ - When `skills/<name>/SKILL.md` exists, `README.md` should have a short "For AI agents" section
108
+ inviting agents to register and use the skill, and `docs/README.md` and `llms.txt` should link
109
+ to it. The skill links back to the docs with absolute URLs, because it is copied out of the
110
+ repository when installed.
95
111
 
96
112
  ## Canonical Ownership Matrix
97
113
 
@@ -112,6 +128,10 @@ docs/
112
128
  paths
113
129
  - `docs/<topic>.md`
114
130
  - owns reusable deep dives that would otherwise bloat the core docs
131
+ - `skills/<name>/`
132
+ - owns the agent-facing operating procedure: task recipes, sharp edges, and runnable examples
133
+ distilled from the docs. It owns no facts of its own; every behavior it states must also be in
134
+ the docs or the code
115
135
 
116
136
  Backlog, ADRs, reports, and incident notes own internal reasoning history, rejected approaches,
117
137
  postmortems, and root-cause narratives. Core docs are not project memory. They may link to ADRs or
@@ -133,7 +153,8 @@ If a file is required but a topic is currently not mature, write the truthful mi
133
153
 
134
154
  ## Front-Facing Content Filter
135
155
 
136
- Before adding a sentence to `README.md`, `docs/*.md`, `llms.txt`, or `llms-full.txt`, ask whether an
156
+ Before adding a sentence to `README.md`, `docs/*.md`, `llms.txt`, `llms-full.txt`, or the agent
157
+ skill, ask whether an
137
158
  external user, contributor, or tool needs it to understand what the package is, how it works, how to
138
159
  install it, how to use it, how to configure it, how to debug it, how to migrate, or how to
139
160
  contribute.
@@ -62,6 +62,9 @@ Optional guidance paragraphs.
62
62
  ## Topic Deep Dives
63
63
  - [docs/<topic>.md](docs/<topic>.md): why this topic matters
64
64
 
65
+ ## Agent Skill
66
+ - [skills/<name>/SKILL.md](skills/<name>/SKILL.md): agent skill that teaches agents to use this package
67
+
65
68
  ## Optional
66
69
  - [CHANGELOG.md](CHANGELOG.md): release history
67
70
  - [ACKNOWLEDGEMENTS.md](ACKNOWLEDGEMENTS.md): credits and lineage
@@ -76,6 +79,8 @@ Rules:
76
79
  - Keep the same professional, positive, external-facing tone as the tracked source docs.
77
80
  - Do not include maintainer-only notes, internal validation commands, or content copied from
78
81
  `untracked/comments/`.
82
+ - Include the `Agent Skill` section only when `skills/<name>/SKILL.md` exists. See
83
+ `agent-skill.md`.
79
84
 
80
85
  ## `llms-full.txt` Requirements
81
86
 
@@ -114,6 +119,9 @@ Rules:
114
119
  - Do not aggregate maintainer-only notes from `untracked/comments/`, internal smoke-test blocks, or
115
120
  documentation-generation commentary.
116
121
  - Prefer document separators so tools and humans can navigate the aggregate.
122
+ - Do not aggregate the agent skill. It is distilled from the docs that `llms-full.txt` already
123
+ contains. Agents reach it through the `Agent Skill` entry in `llms.txt` and through the "For AI
124
+ agents" section of the aggregated `README.md`.
117
125
  - Keep duplicated content low; if two docs repeat heavily, consolidate the real docs first.
118
126
  - Do not blindly concatenate huge, repetitive, or sensitive material. Link out when a bounded
119
127
  aggregate is more useful than a giant dump.
@@ -128,7 +136,7 @@ Rules:
128
136
  topic deep dives included by the file.
129
137
  - If a doc says a feature is absent or unstable, `llms.txt` and `llms-full.txt` must say the same.
130
138
  - If an API, CLI, or integration changed, update the core docs together with the LLM index
131
- files in the same change.
139
+ files, and the agent skill when one exists, in the same change.
132
140
  - If the source docs intentionally omit internal mistake history, do not reintroduce that history
133
141
  in the LLM index files.
134
142
  - If maintainers need extra internal guidance, keep it in `untracked/comments/<timestamp>_<topic>.md`
@@ -19,13 +19,15 @@ Use this file for broad repository documentation work.
19
19
  - broken links;
20
20
  - orphan `docs/<topic>.md` pages;
21
21
  - missing `llms.txt` / `llms-full.txt`;
22
+ - a missing agent skill for a package with an actionable surface, a stale one (renamed calls,
23
+ changed flags, broken links), or one that should not exist (see `agent-skill.md`);
22
24
  - docs that should exist but are crammed into README only.
23
25
  5. Fix the highest-value inconsistencies first:
24
26
  - installation and first-run instructions;
25
27
  - missing or stale troubleshooting for common user-facing failures;
26
28
  - architecture or API drift;
27
29
  - missing contributor/security/license basics;
28
- - broken AI-readable indexes.
30
+ - broken AI-readable indexes and stale agent skill recipes.
29
31
 
30
32
  ## Writing Rules
31
33
 
@@ -96,6 +98,8 @@ need it to interpret logs, migration impact, or compatibility boundaries.
96
98
  - `docs/README.md` lists every topic deep dive with a short explanation.
97
99
  - `README.md` points readers into the docs tree.
98
100
  - `llms.txt` and `llms-full.txt` match the current docs corpus.
101
+ - The agent-skill decision was made from repository evidence and stated in the final report. When
102
+ the skill exists, it follows `agent-skill.md` and its verification tiers are in the report.
99
103
  - Links resolve and point to the canonical target.
100
104
  - Front-facing docs do not contain internal mistake narratives. Changelog entries, when needed,
101
105
  state only user-visible changes and migration impact.
@@ -112,6 +116,10 @@ need it to interpret logs, migration impact, or compatibility boundaries.
112
116
  troubleshooting page.
113
117
  - `llms.txt` lists docs that no longer exist or no longer matter.
114
118
  - `llms-full.txt` contains stale or duplicated material instead of a faithful aggregate.
119
+ - the agent skill tours the API instead of teaching a workflow, omits the package's limits, ships
120
+ snippets that crash on failure cases, or depends on links that are unreachable once installed.
121
+ - an agent skill is created for a documentation-only repository, or teaches contributing instead
122
+ of using the package.
115
123
  - topic docs include ephemeral repair commentary instead of stable current behavior.
116
124
  - generated docs leak maintainer-only notes, test recipes, or internal caveats into external
117
125
  documentation.
@@ -208,26 +208,31 @@ validations:
208
208
  CI/CD settings.'
209
209
  - name: coredoc
210
210
  source: codex-skills (maintainer)
211
- tree_hash: 9e574029b99507ce2f50b0a8e792529274da8e022a87982ed0313d04e22c1bc7
211
+ tree_hash: 2a6d6f46cfa504f6ca2b178f9d98e193eb0f12a6099bb5a0a0b0adbf3f43a185
212
212
  level: adopted
213
213
  method: first-party-adoption
214
214
  audience: host
215
215
  validated_by: skill
216
- validated_at: '2026-07-13'
216
+ validated_at: '2026-10-21'
217
217
  evidence:
218
218
  parser_roundtrip: true
219
219
  has_scripts: false
220
- files: 5
220
+ files: 6
221
221
  notes: "Maintainer-authored codex skill; first-party reviewed and vendored byte-verbatim.\
222
222
  \ Field-evidence fold 2026-07-13 (agency c1679): llms freshness sharpened from\
223
223
  \ habit to invariant in SKILL.md and references/llms-files.md \u2014 regenerate\
224
224
  \ llms files in the same change that edits docs (the stale window misrepresents\
225
- \ the docs). Fable5-reviewed. Behavioral audit (backlog 0003) pending \u2014 upgrades\
225
+ \ the docs). Operator-requested fold 2026-10-21: package agent skill (references/agent-skill.md)\
226
+ \ \u2014 relevance decision from repository evidence, skills/<name>/ layout, verified\
227
+ \ recipes, docs pointers; adversarially reviewed (two rounds) and field-trialled\
228
+ \ on RAGNAROK and AbstractCore (author, A/B consumer and adversary agents, four\
229
+ \ rounds). Fable5-reviewed. Behavioral audit (backlog 0003) pending \u2014 upgrades\
226
230
  \ to audited then."
227
231
  activation_description: Create, audit, and maintain a professional external-facing
228
232
  documentation set (README, docs/*, architecture with diagrams, llms.txt/llms-full.txt)
229
- kept faithful to the code. Use when an agent must bootstrap or repair project
230
- documentation.
233
+ kept faithful to the code and, when the package is something an agent can operate,
234
+ a package agent skill at skills/<name>/ that teaches other agents to use it. Use
235
+ when an agent must bootstrap or repair project documentation.
231
236
  - name: entity-observation
232
237
  source: first-party
233
238
  tree_hash: ab92b03566aa02fdf0835348e8f7864c1da29e7b0916ea47dc9817a6c349f7f1
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: abstractskill
3
- Version: 0.3.0
3
+ Version: 0.3.2
4
4
  Summary: Agent Skills (SKILL.md) parsing, discovery, trust gating, and demand derivation for AbstractFramework
5
5
  Author-email: Laurent-Philippe Albou <contact@abstractcore.ai>
6
6
  License-Expression: MIT
@@ -55,6 +55,7 @@ src/abstractskill/registry/skills/cicd/references/repository-setup.md
55
55
  src/abstractskill/registry/skills/cicd/references/workflow-patterns.md
56
56
  src/abstractskill/registry/skills/coredoc/SKILL.md
57
57
  src/abstractskill/registry/skills/coredoc/agents/openai.yaml
58
+ src/abstractskill/registry/skills/coredoc/references/agent-skill.md
58
59
  src/abstractskill/registry/skills/coredoc/references/core-doc-set.md
59
60
  src/abstractskill/registry/skills/coredoc/references/llms-files.md
60
61
  src/abstractskill/registry/skills/coredoc/references/maintenance-playbook.md
@@ -38,8 +38,8 @@ LICENSES = (
38
38
  # The bundle version must move whenever the bundled content moves. When this
39
39
  # test fails: bump `version:` in src/abstractskill/registry/catalog.yaml, then
40
40
  # update BOTH values below (the digest printed in the failure message).
41
- PINNED_VERSION = "2026.09.25"
42
- PINNED_DIGEST = "61d8b95ae2c07c247b516d4a76963b49019860b292a0d68117e20122fa6f16fa"
41
+ PINNED_VERSION = "2026.10.21"
42
+ PINNED_DIGEST = "35418bac94def61ae3be5fa59e3ea7632fd9e8c497eb13aa5d35f9256f53d7a8"
43
43
 
44
44
 
45
45
  def _bundle_digest(root: Path) -> str:
File without changes
File without changes
File without changes