`agentic-toolkit`: align with the living-doc canon
@miroslavpojer 已经在做这个了。
开始于 2026年9月15日。
评估
这个 Issue 还没有评估数据。
描述
Description of Technical Debt
agentic-toolkit authors the issue bodies, feature-file headers and PageObject headers that the living-doc collectors mine, but its own skills, agent definitions, schemas and docs disagree with the canon living-doc now enforces (verified at merge commit bfcc402ff998085cbf7bb91a7fd55ea8ac12c911):
skills/living-doc-update/SKILL.md:139-160still writesstatus: descoped,descoped_at,descoped_reason,future_release, and an AC line like(v1.2.0 – descoped)using en-dash bullets;:163-166puts the AC description on the header line after an em dash instead of on a- Rationale:bullet.skills/gherkin-living-doc-sync/SKILL.md(lines 7, 11, 171, 212),evals/evals.json:154-155anddocs/guides/gherkin-living-doc-sync.md(lines 15, 32) describe "descoped" scenarios with a target-release reference instead of(planned)/(v<target> - planned).skills/living-doc-update/evals/evals.json:108-112andevals/fixture-map.md:13still expect thedescopedstate..github/agents/living-doc-bdd-copilot.agent.md:278uses an en-dash in the AC reference format; roughly 81 lines acrossskills/,.github/,docs/combineAC:with an en/em dash, plus 8 dash-bulleted lines.skills/shared/references/schemas/project-profile.schema.json:40-44allows an arbitraryac_statesvalue (mentionsIn Review) instead of a subset of the four canonical states, and still carriespageobject_statuses: [planned, candidate, active, deprecated], also present inliving-doc-bdd-schemas.md(lines 46, 252, 264, 309, 349, 352).skills/living-doc-create-feature/SKILL.md(lines 79, 174) assigns a Feature astatus(includingcandidate);skills/data-cy-instrument/SKILL.md:207"promotes"status: candidatetoactiveinstead of removingstub-reason:; thecreate-feature,scenario-creator,pageobject-scanandgap-finderevals all expect a Feature or PageObject status.skills/shared/references/living-doc-glossary.mdis an older, unsynced copy of the canon glossary and has drifted.
The canon it should follow now lives in living-doc's docs/guides/living-doc-glossary.md, docs/guides/living-doc-header-types.md and docs/guides/living-doc-document-types.md (a later living-doc move relocates these under docs/reference/; the sync script should be written against the current path and updated when that move lands).
Impact of Technical Debt
- Content authored by these skills (issue bodies, feature-file headers, PageObject headers) will fail collection or normalization once the collectors move onto the new canon — dashes, AC states, and status placement all disagree.
- The stale
pageobject_statuses/ Featurestatusfields actively mislead authors and tooling into producing a field the canon no longer recognizes, and drop the derived-Feature-state / orphan-Feature reporting the canon expects instead. - Evals encode the wrong expected output, so they'll pass against behavior that is itself wrong, hiding regressions instead of catching them.
skills/shared/references/living-doc-glossary.mdbeing an unsynced copy means authors following it are working from out-of-date rules with no automated way to detect drift.
Category
Documentation
(Cuts across Code Quality/Refactoring and Testing/Test Coverage too — schemas, skill prompts, and eval fixtures all need updates alongside the docs.)
Priority
High - Actively causing problems
(Blocks the living-doc GitHub-chain milestone gate, which requires this alignment merged before real-project verification.)
Proposed Solution
- Add a glossary sync script,
scripts/sync-living-doc-glossary.sh <living-doc-ref>, that fetches the canon glossary fromliving-docat the given ref, rewrites its relative links to absoluteliving-docURLs, and writes the local copy underskills/shared/references/living-doc-glossary.mdwith a header comment<!-- synced from AbsaOSS/living-doc@<ref> -->. Add atest-scripts.ymlcheck that re-runs the script for the ref recorded in that header and fails the build on any difference. - Switch to one dash. Replace every en/em dash used in generated AC headers, AC bullets, entity names, and
# AC:comments with a plain hyphen; move the AC description off the header line and onto a- Rationale:-style bullet wherever a skill currently appends it after a dash. - Rewrite the descope procedure. An AC moved out of scope becomes
(v<target> - planned)when a target version is known, otherwise(planned); the reason goes on a- Rationale:bullet. Linked Gherkin scenarios keep their@AC:tag and gain@wip+@review-needed. User-facing trigger phrases such as "AC was descoped" stay as-is in skill descriptions and inevals/trigger-eval.jsonuser queries — only the produced output changes. - Constrain
ac_states. Inproject-profile.schema.json, makeac_statesanenumthat is a subset of the four canonical states (planned,in_review,active,deprecated); omitting the field stays allowed, but no other spelling or extra state is accepted. - Drop Feature and PageObject status. No skill should write a Feature
statusor a PageObjectstatus:field, andpageobject_statusesshould be removed from the schema and fromliving-doc-bdd-schemas.md. An uninstrumented surface keepsstub-reason:; instrumenting it means removingstub-reason:, not flipping a status value. A Feature with no linked User Stories or Functionalities should be reported as an orphan (a distinctORPHAN_FEATUREcondition), not taggedcandidate. - Limit
## Status/# status:to User Stories and Functionalities in every generated entity file and issue body. - Update every affected eval fixture (
living-doc-update,gherkin-living-doc-sync,living-doc-create-feature,data-cy-instrument,scenario-creator,pageobject-scan,gap-finder) so expected outputs match the corrected behavior, and updateevals/fixture-map.mdaccordingly. - Restore the Project Profile /
seed.yaml/manifest.jsonreference sections here ifliving-dochas removed its own copies in favor of linking out to this repo — add them if missing, and link back to the relevantliving-docreference docs.
Acceptance Criteria
-
skills/shared/references/living-doc-glossary.mdmatchesscripts/sync-living-doc-glossary.sh's output for the ref recorded in its header comment;test-scripts.ymlchecks this. - No line under
skills/,.github/,docs/combinesAC:with an en/em dash, opens with a dash bullet (-/—/–), or combines aUS-/FEAT-/FUNC-id with a middle-dot and an en/em dash. - No
descopedstate,status: descoped,descoped_at, ordescoped_reasonremains outside the user-query strings inevals/trigger-eval.json; descope output uses(planned)/(v<target> - planned)plus a- Rationale:bullet. - No
status: candidateorpageobject_statusesremains outside the user-query strings inevals/trigger-eval.json;project-profile.schema.jsonrejectsac_states: [In Review],ac_states: [done], and anypageobject_statuseskey (covered by the repo's own schema tests). -
living-doc-create-featureproduces no Featurestatusfield;data-cy-instrumentremovesstub-reason:on instrumentation instead of changing a status value. - Every eval fixture map and affected expected-output fixture is updated to match; the repo's own checks (including
test-scripts.yml) pass.
- 主要语言
- Python
- 星标
- 1
- 派生
- 0
- 平均合并
- 20 天 22 小时
- 30 天内合并 PR
- 1
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
AbsaOSS/agentic-toolkit 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 66/100
AbsaOSS/agentic-toolkit#27 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 64/100
AbsaOSS/agentic-toolkit#23 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 66/100
AbsaOSS/agentic-toolkit#22 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 72/100
AbsaOSS/agentic-toolkit#21 ·
-
documentation
难度 2/5 1-3 小时 新手友好度 66/100
AbsaOSS/agentic-toolkit#20 ·
查看 AbsaOSS/agentic-toolkit 的全部 Issue
相似的 Issue
-
agent-ready documentation needs-triage
难度 1/5 1-3 小时 新手友好度 88/100
-
documentation
难度 1/5 1 小时以内 新手友好度 91/100
-
workflow-status page template still says reusable workflows are "triggered only by workflow_call:" 未关闭
难度 1/5 1 小时以内 新手友好度 92/100
-
instance instance add
难度 1/5 1 小时以内 新手友好度 72/100
searxng/searx-instances#939 · 1 条评论 ·
-
area-deployment area-integrations triage:bot-seen
难度 2/5 半天 新手友好度 86/100