Skip to content

skills 品質改善 cluster:manifest-aware 行為、路徑修復、誠實承諾(#12–#21) - #23

Merged
kiki830621 merged 12 commits into
mainfrom
idd/skills-quality-cluster
Jul 6, 2026
Merged

skills 品質改善 cluster:manifest-aware 行為、路徑修復、誠實承諾(#12–#21)#23
kiki830621 merged 12 commits into
mainfrom
idd/skills-quality-cluster

Conversation

@kiki830621

Copy link
Copy Markdown
Member

Refs #12 #13 #14 #15 #16 #17 #18 #19 #20 #21

Summary

三份 skill-reviewer 審查(2026-07-06)的 10 個整併 findings 一次落地:axiom-create 的 maintainer 路徑修復與結構式偵測、三 skill 對本地 domains 的可見性、manifest-aware 分流與正交分級、per-format 輸出模板、entry_points scoping 與 archive 排除、frontmatter 現代化、git-conditional SCD2、失敗模式表。12 commits,每 issue 一 commit + 2 個 verify-fix commits。

Verification

Cluster verify(5 Claude reviewers, model: opus + Devil's Advocate;Codex 因 429 缺席,fail-closed 記錄):初判 Conditional PASS、4 MEDIUM 已於 fix round 1 修復 → PASS,0 blocking。詳見 #12 的 Verify Report master comment。Follow-up 加固另開 #22

Checklist

  • Diagnose ✓(10 issues,各 Diagnosis comment)
  • Implement(10 per-issue commits)
  • Verify ✓(fix round 1 後 PASS)
  • Verify-gated: ready to merge → after merge, run /idd-close for each issue(manual gate + closing summary;no auto-close trailer)

🤖 Generated by /idd-all (cluster mode). Do NOT add a GitHub close trailer (Closes/Fixes/Resolves) — IDD discipline requires manual close after merge to enforce checklist gate + closing summary.

kiki830621 added 12 commits July 6, 2026 07:11
…ode detection (#12)

The maintainer path still pointed at <cwd>/domains/, which stopped
existing when the repo became a marketplace — new domains were written
where the plugin never reads. Detection by remote-URL substring broke on
renamed forks and false-matched similarly named repos; replaced with a
structural check (plugin.json presence at repo root), fail-closed to
local mode.

Refs #12
…scipline (#13)

Concrete examples dominate LLM behavior over abstract tables; the old
example showed ERROR marks on a markdown/legacy domain, pulling first
executions back to pre-manifest blanket-ERROR behavior. Bootstrapped and
legacy examples now shown separately; stale '12 domains' count replaced
with an INDEX-derived note; ERROR/WARNING/INFO icons made consistent
across Steps 2-4.

Refs #13
…cope (#14)

axiom-create writes local domains to <cwd>/axioms/ and hands off to
/axiom-validate, but validate and lookup only ever scanned the plugin's
own domains/ — the created domain was invisible to both. Scope is now
plugin ∪ cwd (domains/, axioms/), with [plugin]/[local] source tags in
output.

Refs #14
Search and validation both swept the whole domain tree, hitting
archive/ (superseded axiom copies shown beside current ones) and
06_reference/ (manual dumps, scraped web assets). Both skills now scope
to entry_points + sibling axiom files and always exclude
archive/archived/06_reference/dotdirs; apa7-style's manifest gains the
axiom files that were previously unlisted.

Refs #15
…t, bilingual trigger descriptions (#16)

user_invocable (snake_case) is not a documented frontmatter key and its
intended behavior is the default anyway; removed from all three.
Descriptions now state when to invoke (with representative domain names
and an English clause for marketplace discoverability), lookup/validate
gain argument-hint, and validate gains an argument-first trigger spec so
callers can chain it unattended.

Refs #16
…es (#17)

The single result card assumed ASBE YAML fields that 10 of 14 domains
don't have, inviting fabricated ids/one-liners for prose domains. Step 3
now has one template per format, Step 4's deep-dive menu is offered only
where the fields exist, and --list no longer promises axiom counts INDEX
cannot supply. Example file reference fixed to the .yaml twin.

Refs #17
…tra checks; bounded cross-domain scan (#18)

The 3-row leveling table left yaml/legacy (the most likely mid-migration
state) undefined; replaced with two orthogonal rules (format → check
method, maturity → severity cap) covering all six combinations. The
ID/meta extra checks now apply only to yaml domains with explicit
severities and a principle-6 exemption for custom ID schemes. The
cross-domain scan gets a per-format scan unit and a target↔others scope
rule so 14 domains stay affordable.

Refs #18
…ated quality check (#19)

Step 3 predated the manifest system and imposed ASBE YAML fields on all
14 domains, 10 of which are markdown/freeform. It now branches on the
domain manifest, defines a local overlay location for extending built-in
domains (never the plugin cache), syncs domain.yaml/INDEX after
extensions, checks name collisions before creating, and delegates the
quality check to axiom-validate instead of carrying a drifting inline
copy.

Refs #19
…iable fallback (#20)

'Compare against the previous version' had no obtainable baseline in an
end-user plugin cache, so the realistic failure mode was a fabricated
'SCD2: compliant' line in validation reports. The check now runs only
where git history exists and otherwise reports itself as not
verifiable; axiom-create gains a maintainer-mode git-diff self-check
(additions only) at write time.

Refs #20
Empty results, unknown domain arguments, malformed manifests, empty
domains, and dangling entry_points previously had no specified behavior
— each session improvised. Both skills now carry a small error-handling
table with a shared manifest-missing fallback wording.

Refs #21
…t examples, heterogeneous entry_points (#12 #13 #15 #17 #19)

Verify round 1 (5-AI, DA conditional-pass) findings applied:
- axiom-create Step 3: domain selection now precedes manifest read and
  write-location decision (ordering was inverted); INDEX sync path fully
  qualified with $ROOT; Step 4 delegation no longer pins validate's
  internal step numbers
- axiom-validate: bootstrapped example uses the real axiom id and obeys
  the file's own icon discipline; field-level checks scoped to YAML
  files containing axioms:/theorems: so non-schema files in entry_points
  stop producing false ERRORs
- apa7-style manifest: drop transformation_rules.yaml from entry_points
  (non-axiom file, out of #15 scope)
- axiom-lookup: example uses real id A0_mass_conservation:390;
  description no longer hardcodes the domain count

Refs #12 #13 #15 #16 #17 #19
…write (#12 #16)

Plugin README's axiom-create section and plugin CLAUDE.md's path
conventions (now cited as canonical) still described the pre-#12
cwd-based behavior; root README tree comment still said 12+.

Refs #12 #16 #11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant