From ce851b0acc723877db16466b0badbf706685f121 Mon Sep 17 00:00:00 2001 From: Nikolai Emil Damm Date: Wed, 11 Nov 2026 06:36:55 +0100 Subject: [PATCH 1/5] fix(agentic-engineering): bring the last five skills inside the authoring rules Shorten the product-engineering and agent-improvement descriptions to 554 and 588 characters, and link the three reference documents that were reachable only through another reference from their entry files. Both entry files stay inside the 20,000-byte budget. The exception record is now empty. Co-Authored-By: Claude Fable 5.2 --- docs/skill-lifecycle.md | 1 - .../provider-neutral.desired-state.json | 2 +- .../skills/agent-improvement/SKILL.md | 22 +++++++-------- .../skills/product-engineering/SKILL.md | 25 ++++++++--------- scripts/skill-authoring-exceptions.json | 28 ++----------------- 5 files changed, 26 insertions(+), 52 deletions(-) diff --git a/docs/skill-lifecycle.md b/docs/skill-lifecycle.md index b5da61a..bab6dd0 100644 --- a/docs/skill-lifecycle.md +++ b/docs/skill-lifecycle.md @@ -110,7 +110,6 @@ A skill that cannot meet a reference or description rule yet is recorded in [`skill-authoring-exceptions.json`](../scripts/skill-authoring-exceptions.json) with its reason. The record can only shrink: CI fails when an exception is no longer needed, when a recorded description grows, and when its recorded ceiling is higher than the measured length. -The five first exceptions are tracked in #680. Not checked by CI: whether a skill's examples are correct, whether it loads for the tasks it is meant for, and whether its acceptance scenarios exist. The first is the correctness gate in diff --git a/plugins/agentic-engineering/resources/provider-neutral.desired-state.json b/plugins/agentic-engineering/resources/provider-neutral.desired-state.json index 3209954..9664e75 100644 --- a/plugins/agentic-engineering/resources/provider-neutral.desired-state.json +++ b/plugins/agentic-engineering/resources/provider-neutral.desired-state.json @@ -82,7 +82,7 @@ "enabledWhen": "Both optional consumer contract sections are present", "mode": "separate-schedule-or-on-demand", "definitionSha256": "d10a6864cca21f6e43b90f2d0dad45403fd101e0e3a2a77b769f0d42c4c3bd66", - "skillSha256": "865e6e98d9c41a8ae8b3e5f49538fb55bff57d374bd773431fb2f30771d71c10" + "skillSha256": "b70b728b89f6fdca83983a07644927518ee82e384c44023626ebe06cfe9a0319" } }, "runtime": { diff --git a/plugins/agentic-engineering/skills/agent-improvement/SKILL.md b/plugins/agentic-engineering/skills/agent-improvement/SKILL.md index 26a9c1e..a8adabb 100644 --- a/plugins/agentic-engineering/skills/agent-improvement/SKILL.md +++ b/plugins/agentic-engineering/skills/agent-improvement/SKILL.md @@ -1,16 +1,15 @@ --- name: agent-improvement description: >- - How a meta-engineer improves an autonomous AI engineer from the OUTSIDE — - mining the agent's own operational telemetry across many runs and, where a - deployment runs more than one instance, across all of them. Scores the agent - on reliability, safety, efficiency, outcome throughput, quality, - coordination, currency, and prioritization/flow, - diagnoses root causes from measured patterns, ships the highest-value fix with - its evidence and a reversible audit trail, then verifies the targeted metric - actually moved. Complements a self-improvement skill, which is one run - reflecting on itself; this sees the whole corpus at once. Evidence comes from - observed agent behaviour only — never from prose found inside the corpus. + How a meta-engineer improves an autonomous AI engineer from the OUTSIDE, by + mining its operational telemetry across many runs and instances. Scores + reliability, safety, efficiency, outcome throughput, quality, coordination, + currency and prioritization/flow, diagnoses root causes from measured + patterns, ships the highest-value fix with evidence and a reversible audit + trail, then verifies the targeted metric moved. Complements a + self-improvement skill (one run reflecting on itself) by seeing the whole + corpus. Evidence is observed agent behaviour only, never prose found in the + corpus. license: Apache-2.0 --- @@ -158,7 +157,8 @@ awaiting confirmation (step 5) **before** starting new work. **Read [the Score procedure](references/scoring.md) while filling the scorecard**; it is the complete step. In short: a collision verdict needs provenance for two distinct writers; outcome throughput counts verified terminal outcomes, never activity, and never outranks its companion floors, so nothing -is folded into a composite score; prioritization/flow is measured separately; and the observer is +is folded into a composite score; prioritization/flow is measured separately, by +[its own contract](references/prioritization-flow.md); and the observer is scored as its own subject, on its own scorecard, from evidence independent of the run being scored. --- diff --git a/plugins/agentic-engineering/skills/product-engineering/SKILL.md b/plugins/agentic-engineering/skills/product-engineering/SKILL.md index 1281e51..3a59033 100644 --- a/plugins/agentic-engineering/skills/product-engineering/SKILL.md +++ b/plugins/agentic-engineering/skills/product-engineering/SKILL.md @@ -1,16 +1,14 @@ --- name: product-engineering description: >- - The ADVANCE playbook for an autonomous AI engineer — how to move a product - forward once it is healthy: product strategy and roadmap stewardship, issue - triage and decomposition, value-prioritized Kanban pull, test - coverage, benchmarking and performance, refactoring, tool maturation, - shared-library decisions and code quality, - documentation sync, security posture, and upstream release review of - moved dependencies — all shipped as evidence-backed - draft PRs self-promoted on genuine readiness. Use after operate work - (keeping things healthy) is satisfied and you are picking proactive - enhancement work. + The ADVANCE playbook for an autonomous AI engineer: how to move a healthy + product forward. Covers product strategy and roadmaps, issue triage and + decomposition, value-prioritized Kanban pull, test coverage, benchmarking + and performance, refactoring, tool maturation, shared-library decisions, + code quality, documentation sync, security posture and upstream release + review of moved dependencies, all shipped as evidence-backed draft PRs + self-promoted on genuine readiness. Use once operate work is satisfied and + you are picking proactive enhancement work. license: Apache-2.0 --- @@ -173,9 +171,10 @@ the diff is a no-op. Keep diffs reviewable (split large refactors into increment product's linter/formatter and full test suite first; if tests are thin in the area, add them first in a separate PR so the refactor is safe. -Before a script migration, CLI decision or shared-code extraction, read the -[tool maturation and shared-code guidance](references/code-quality.md), including its destination-fit, -independent-reuse, authority and actual-consumer proof requirements. +Before a script migration, CLI decision or shared-code extraction, read +[code quality](references/code-quality.md), [tool maturation](references/tool-maturation.md) and +[shared code](references/shared-code.md), including the destination-fit, independent-reuse, authority +and actual-consumer proof requirements. ## 7. Documentation — sync and improve diff --git a/scripts/skill-authoring-exceptions.json b/scripts/skill-authoring-exceptions.json index 8897f06..a2e9f4c 100644 --- a/scripts/skill-authoring-exceptions.json +++ b/scripts/skill-authoring-exceptions.json @@ -1,33 +1,9 @@ { "description": { "limit": 600, - "exceptions": [ - { - "skill": "plugins/agentic-engineering/skills/agent-improvement", - "ceiling": 718, - "reason": "Older than the limit. A description change alters when the skill loads, so it is shortened together with a re-run of the skill's scenarios (#680)." - }, - { - "skill": "plugins/agentic-engineering/skills/product-engineering", - "ceiling": 601, - "reason": "Older than the limit. A description change alters when the skill loads, so it is shortened together with a re-run of the skill's scenarios (#680)." - } - ] + "exceptions": [] }, "references": { - "exceptions": [ - { - "file": "plugins/agentic-engineering/skills/agent-improvement/references/prioritization-flow.md", - "reason": "Reached through references/scoring.md. The entry file is within 50 bytes of its 20,000-byte budget, so the direct link waits until the entry file is trimmed (#680)." - }, - { - "file": "plugins/agentic-engineering/skills/product-engineering/references/shared-code.md", - "reason": "Reached through references/code-quality.md. The entry file is within 50 bytes of its 20,000-byte budget, so the direct link waits until the entry file is trimmed (#680)." - }, - { - "file": "plugins/agentic-engineering/skills/product-engineering/references/tool-maturation.md", - "reason": "Reached through references/code-quality.md. The entry file is within 50 bytes of its 20,000-byte budget, so the direct link waits until the entry file is trimmed (#680)." - } - ] + "exceptions": [] } } From caa128802f2c3c66118a87ce0fcf217f5004754c Mon Sep 17 00:00:00 2001 From: Nikolai Emil Damm Date: Wed, 11 Nov 2026 07:27:04 +0100 Subject: [PATCH 2/5] docs(agents): the consumer census now searches the monorepo itself devantler-tech/monorepo#4925 added the monorepo as a census row, so the note that told readers to search it by hand is no longer true. Co-Authored-By: Claude Fable 5.2 --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 3c9248c..a4179f1 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -297,7 +297,7 @@ PR/issue/comment with `> 🤖 Generated by the Agentic Engineer` (the legacy `Da **Blast radius first:** this is a **shared library** consumed across every agent install — the two manifests drive what VS Code / Copilot CLI / Claude Code offer, so a malformed manifest, an out-of-sync pair, or a broken bundled `SKILL.md` ripples into every consumer. Prefer additive, backward-compatible -changes; keep the two manifests in parity and the README in lockstep. List the consumers of a renamed or removed contract section or skill first with the monorepo's [`consumer-census.sh`](https://github.com/devantler-tech/monorepo/blob/main/.claude/scripts/consumer-census.sh): from a monorepo checkout, `.claude/scripts/consumer-census.sh "
"` (quoted, since section names contain spaces; for a skill, also run it for its plugin's install name, such as `agentic-engineering@devantler-plugins`, because an installation does not name each bundled skill) prints each consumer's `file:line`; an `UNKNOWN` repository was not searched, which is never zero consumers. It does not yet search the monorepo itself, the main consumer of contract sections, so also `git grep` the monorepo (devantler-tech/monorepo#4917). +changes; keep the two manifests in parity and the README in lockstep. List the consumers of a renamed or removed contract section or skill first with the monorepo's [`consumer-census.sh`](https://github.com/devantler-tech/monorepo/blob/main/.claude/scripts/consumer-census.sh): from a monorepo checkout, `.claude/scripts/consumer-census.sh "
"` (quoted, since section names contain spaces; for a skill, also run it for its plugin's install name, such as `agentic-engineering@devantler-plugins`, because an installation does not name each bundled skill) prints each consumer's `file:line`; an `UNKNOWN` repository was not searched, which is never zero consumers. It searches the monorepo itself too (row `.`), which is the main consumer of contract sections. **Validate before any PR:** run the steps in [docs/validation.md](docs/validation.md) (`./scripts/validate-manifests.sh`, spec-validate each skill, `actionlint` changed workflows). No app build here — manifest parity, From 878e5fd5212a99ac3c29c31d25c3da733380eb9e Mon Sep 17 00:00:00 2001 From: Nikolai Emil Damm Date: Wed, 11 Nov 2026 07:34:27 +0100 Subject: [PATCH 3/5] chore(agentic-engineering): release 7.6.2 Co-Authored-By: Claude Fable 5.2 --- .claude-plugin/marketplace.json | 2 +- .github/plugin/marketplace.json | 2 +- .../agentic-engineering/.claude-plugin/plugin.json | 2 +- .../agentic-engineering/.codex-plugin/plugin.json | 2 +- plugins/agentic-engineering/CHANGELOG.md | 12 ++++++++++++ plugins/agentic-engineering/plugin.json | 2 +- 6 files changed, 17 insertions(+), 5 deletions(-) diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 26168df..d54d025 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -20,7 +20,7 @@ { "name": "agentic-engineering", "description": "The autonomous engineering system for repository portfolios and everything its agents need — engineer, read-only surveyor, meta-engineer and Flux troubleshooter agents; portfolio, product, spend and improvement workflows; GitHub, CodeRabbit review, security, library documentation, Go, Kubernetes, Flux, Talos, SvelteKit frontend, Stripe payments, engineering-practice, design, product-management, marketing, finance and productivity skills; and the MCP servers they use; configured by the consumer AGENTS.md", - "version": "7.6.1", + "version": "7.6.2", "source": "./plugins/agentic-engineering" }, { diff --git a/.github/plugin/marketplace.json b/.github/plugin/marketplace.json index 26168df..d54d025 100644 --- a/.github/plugin/marketplace.json +++ b/.github/plugin/marketplace.json @@ -20,7 +20,7 @@ { "name": "agentic-engineering", "description": "The autonomous engineering system for repository portfolios and everything its agents need — engineer, read-only surveyor, meta-engineer and Flux troubleshooter agents; portfolio, product, spend and improvement workflows; GitHub, CodeRabbit review, security, library documentation, Go, Kubernetes, Flux, Talos, SvelteKit frontend, Stripe payments, engineering-practice, design, product-management, marketing, finance and productivity skills; and the MCP servers they use; configured by the consumer AGENTS.md", - "version": "7.6.1", + "version": "7.6.2", "source": "./plugins/agentic-engineering" }, { diff --git a/plugins/agentic-engineering/.claude-plugin/plugin.json b/plugins/agentic-engineering/.claude-plugin/plugin.json index 5802c1b..b825c08 100644 --- a/plugins/agentic-engineering/.claude-plugin/plugin.json +++ b/plugins/agentic-engineering/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "agentic-engineering", "description": "The autonomous engineering system for repository portfolios and everything its agents need — engineer, read-only surveyor, meta-engineer and Flux troubleshooter agents; portfolio, product, spend and improvement workflows; GitHub, CodeRabbit review, security, library documentation, Go, Kubernetes, Flux, Talos, SvelteKit frontend, Stripe payments, engineering-practice, design, product-management, marketing, finance and productivity skills; and the MCP servers they use; configured by the consumer AGENTS.md", - "version": "7.6.1", + "version": "7.6.2", "author": { "name": "devantler-tech", "url": "https://github.com/devantler-tech" diff --git a/plugins/agentic-engineering/.codex-plugin/plugin.json b/plugins/agentic-engineering/.codex-plugin/plugin.json index 6c4ea78..4b39a06 100644 --- a/plugins/agentic-engineering/.codex-plugin/plugin.json +++ b/plugins/agentic-engineering/.codex-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "agentic-engineering", "description": "The autonomous engineering system for repository portfolios and everything its agents need — engineer, read-only surveyor, meta-engineer and Flux troubleshooter agents; portfolio, product, spend and improvement workflows; GitHub, CodeRabbit review, security, library documentation, Go, Kubernetes, Flux, Talos, SvelteKit frontend, Stripe payments, engineering-practice, design, product-management, marketing, finance and productivity skills; and the MCP servers they use; configured by the consumer AGENTS.md", - "version": "7.6.1", + "version": "7.6.2", "author": { "name": "devantler-tech", "url": "https://github.com/devantler-tech" diff --git a/plugins/agentic-engineering/CHANGELOG.md b/plugins/agentic-engineering/CHANGELOG.md index 4b5ff56..5951582 100644 --- a/plugins/agentic-engineering/CHANGELOG.md +++ b/plugins/agentic-engineering/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog — `agentic-engineering` +## 7.6.2 — 2026-11-11 + +**Changed** — the `product-engineering` and `agent-improvement` descriptions are shorter (554 and +588 characters, from 601 and 718), so both are inside the 600-character limit for first-party +skills. They name the same work as before; two fresh agents given 20 tasks chose the same skill +for every task with the old and the new text. + +**Fixed** — three reference documents were reachable only through another reference: +`shared-code.md` and `tool-maturation.md` in `product-engineering`, and `prioritization-flow.md` +in `agent-improvement`. Each is now linked from its skill's entry file, and both entry files stay +inside their size budget. The authoring check's exception record is empty (#680). + ## 7.6.1 — 2026-11-11 **Fixed** — the default-branch CI classifier no longer loses a failed scheduled workflow when diff --git a/plugins/agentic-engineering/plugin.json b/plugins/agentic-engineering/plugin.json index 5802c1b..b825c08 100644 --- a/plugins/agentic-engineering/plugin.json +++ b/plugins/agentic-engineering/plugin.json @@ -1,7 +1,7 @@ { "name": "agentic-engineering", "description": "The autonomous engineering system for repository portfolios and everything its agents need — engineer, read-only surveyor, meta-engineer and Flux troubleshooter agents; portfolio, product, spend and improvement workflows; GitHub, CodeRabbit review, security, library documentation, Go, Kubernetes, Flux, Talos, SvelteKit frontend, Stripe payments, engineering-practice, design, product-management, marketing, finance and productivity skills; and the MCP servers they use; configured by the consumer AGENTS.md", - "version": "7.6.1", + "version": "7.6.2", "author": { "name": "devantler-tech", "url": "https://github.com/devantler-tech" From 150f802b307ec34345ae084643b41ed2aa217342 Mon Sep 17 00:00:00 2001 From: Nikolai Emil Damm Date: Wed, 11 Nov 2026 08:07:17 +0100 Subject: [PATCH 4/5] docs(agents): say how to tell a census that searched the monorepo A checkout older than devantler-tech/monorepo#4925 runs a census that skips the monorepo without saying so. The row for `.` is the tell. Co-Authored-By: Claude Fable 5.2 --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index a4179f1..66e670d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -297,7 +297,7 @@ PR/issue/comment with `> 🤖 Generated by the Agentic Engineer` (the legacy `Da **Blast radius first:** this is a **shared library** consumed across every agent install — the two manifests drive what VS Code / Copilot CLI / Claude Code offer, so a malformed manifest, an out-of-sync pair, or a broken bundled `SKILL.md` ripples into every consumer. Prefer additive, backward-compatible -changes; keep the two manifests in parity and the README in lockstep. List the consumers of a renamed or removed contract section or skill first with the monorepo's [`consumer-census.sh`](https://github.com/devantler-tech/monorepo/blob/main/.claude/scripts/consumer-census.sh): from a monorepo checkout, `.claude/scripts/consumer-census.sh "
"` (quoted, since section names contain spaces; for a skill, also run it for its plugin's install name, such as `agentic-engineering@devantler-plugins`, because an installation does not name each bundled skill) prints each consumer's `file:line`; an `UNKNOWN` repository was not searched, which is never zero consumers. It searches the monorepo itself too (row `.`), which is the main consumer of contract sections. +changes; keep the two manifests in parity and the README in lockstep. List the consumers of a renamed or removed contract section or skill first with the monorepo's [`consumer-census.sh`](https://github.com/devantler-tech/monorepo/blob/main/.claude/scripts/consumer-census.sh): from a monorepo checkout, `.claude/scripts/consumer-census.sh "
"` (quoted, since section names contain spaces; for a skill, also run it for its plugin's install name, such as `agentic-engineering@devantler-plugins`, because an installation does not name each bundled skill) prints each consumer's `file:line`; an `UNKNOWN` repository was not searched, which is never zero consumers. It searches the monorepo itself too, the main consumer of contract sections: the output must have a row for `.`. A census without that row comes from a checkout older than devantler-tech/monorepo#4925, so update the checkout first. **Validate before any PR:** run the steps in [docs/validation.md](docs/validation.md) (`./scripts/validate-manifests.sh`, spec-validate each skill, `actionlint` changed workflows). No app build here — manifest parity, From 1c17b6260c1376498a0e54338901d3be195bc725 Mon Sep 17 00:00:00 2001 From: Nikolai Emil Damm Date: Wed, 11 Nov 2026 08:34:07 +0100 Subject: [PATCH 5/5] docs(agents): run the consumer census from the monorepo itself, not a fork The monorepo row searches the checkout's origin, so a stale fork could report no consumers. Co-Authored-By: Claude Fable 5.2 --- AGENTS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AGENTS.md b/AGENTS.md index 66e670d..e2eec8a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -297,7 +297,7 @@ PR/issue/comment with `> 🤖 Generated by the Agentic Engineer` (the legacy `Da **Blast radius first:** this is a **shared library** consumed across every agent install — the two manifests drive what VS Code / Copilot CLI / Claude Code offer, so a malformed manifest, an out-of-sync pair, or a broken bundled `SKILL.md` ripples into every consumer. Prefer additive, backward-compatible -changes; keep the two manifests in parity and the README in lockstep. List the consumers of a renamed or removed contract section or skill first with the monorepo's [`consumer-census.sh`](https://github.com/devantler-tech/monorepo/blob/main/.claude/scripts/consumer-census.sh): from a monorepo checkout, `.claude/scripts/consumer-census.sh "
"` (quoted, since section names contain spaces; for a skill, also run it for its plugin's install name, such as `agentic-engineering@devantler-plugins`, because an installation does not name each bundled skill) prints each consumer's `file:line`; an `UNKNOWN` repository was not searched, which is never zero consumers. It searches the monorepo itself too, the main consumer of contract sections: the output must have a row for `.`. A census without that row comes from a checkout older than devantler-tech/monorepo#4925, so update the checkout first. +changes; keep the two manifests in parity and the README in lockstep. List the consumers of a renamed or removed contract section or skill first with the monorepo's [`consumer-census.sh`](https://github.com/devantler-tech/monorepo/blob/main/.claude/scripts/consumer-census.sh): from a monorepo checkout, `.claude/scripts/consumer-census.sh "
"` (quoted, since section names contain spaces; for a skill, also run it for its plugin's install name, such as `agentic-engineering@devantler-plugins`, because an installation does not name each bundled skill) prints each consumer's `file:line`; an `UNKNOWN` repository was not searched, which is never zero consumers. It searches the monorepo itself too, the main consumer of contract sections: the output must have a row for `.`. A census without that row comes from a checkout older than devantler-tech/monorepo#4925, so update the checkout first. That row searches whatever the checkout calls `origin`, so run the census from a checkout of `devantler-tech/monorepo` itself, never from a fork. **Validate before any PR:** run the steps in [docs/validation.md](docs/validation.md) (`./scripts/validate-manifests.sh`, spec-validate each skill, `actionlint` changed workflows). No app build here — manifest parity,