Compare commits

...
+57 -22
View File
@@ -1,7 +1,7 @@
---
name: corp-v1-channel-scope
description: "Use when operating or synchronizing a Corp v1 project's Scope channel. Owns Roadmap, Epics, Features, and Ideas; correlates all six same-project channels; proactively improves evidence-based product scope; and records human approval before work enters Architecture solution design."
version: 1.3.0
version: 1.4.0
author: Hermes Agent
license: MIT
metadata:
@@ -16,7 +16,7 @@ metadata:
This skill owns product discovery and durable scope for a Corp v1 project's `scope` channel. It monitors the six same-project channels—`general`, `scope`, `architecture`, `kanban`, `delivery`, and `releases`—and maintains the project documentation's top-level **Scope** area.
Scope owns Roadmap, Epics, Features, and Ideas. General coordinates overall project awareness but does not duplicate Scope records. Architecture performs solution work only for Features explicitly approved for solution by a human team member. Hermes participates proactively by proposing and refining useful scope, but never approves its own proposals.
Scope owns Overview, Roadmap, Epics, Features, canonical Task records/reader pages, Ideas, and Questions. General coordinates overall project awareness but does not duplicate Scope records. Architecture performs solution work only for Features explicitly approved for solution by a human team member and remains semantic owner of requirement/task derivation, dependencies, and readiness. Hermes participates proactively by proposing and refining useful scope, but never approves its own proposals.
Load the global `documentation-docusaurus` skill from `https://gitea.lego-cloud.eu/home-v1-skills-code-agent/documentation-docusaurus` before changing documentation structure, navigation, Markdown/MDX, Docusaurus configuration, or builds.
@@ -26,7 +26,7 @@ Use this skill when:
- operating in `corp-v1-<code>-scope`;
- running its recurring synchronization job;
- maintaining Roadmap, Epics, Features, or Ideas;
- maintaining Overview, Roadmap, Epics, Features, canonical Task reader pages, Ideas, or Questions;
- discovering user/project problems and opportunities;
- refining value, scope, acceptance outcomes, dependencies, or risks;
- preparing an Epic or Feature for human `Approved for Solution` review;
@@ -60,24 +60,37 @@ Record approver identity, decision evidence, date, resulting status, and conditi
`Scope` is a top-level menu item immediately before `Architecture`, with its own dedicated sidebar:
```text
Overview
Roadmap
Issue Status Matrix
Ideas
<CODE>-IDEA-1
...
Questions
Q-0001
...
Epics
<CODE>-EP-1
<CODE>-FT-1
<CODE>-FT-2
Features
<CODE>-FT-1
Tasks
<CODE>-TS-1
...
<CODE>-FT-2
<CODE>-EP-2
...
Ideas
```
Within `Epics`, the exact reader hierarchy is **Epics → Epic → Features → Feature → Tasks**. `Features` and `Tasks` are explicit grouping/navigation levels, not flattened labels. Every Task has a separate canonical reader page nested under its owning Feature; no aggregate task list may substitute for those pages.
The project documentation's **Ways of Working** area must contain a separate first sidebar item named **Scope** explaining the ticket hierarchy, delivery statuses, exact/derived authority, roll-up, blockers, cancellation, dependencies, gates, and evidence rules.
### Roadmap
Show verified current state and predicted plans at Epic and Feature level. Distinguish approved/current facts from forecasts and proposals. Include sequence or horizon, status, dependencies, material blockers, owner, and last evidence/update date.
### Issue Status Matrix
### Overview
Maintain a dedicated **Issue Status Matrix** page directly after Roadmap in the Scope sidebar. It is the complete operational index for every governed Idea, Epic, Feature, and Task; it is not a manually curated subset and does not replace the detailed records.
Maintain a dedicated **Overview** page at canonical route `/scope/overview/` as the first item in the Scope sidebar. It contains the Issue Status Matrix and is the complete operational index for every governed Idea, Epic, Feature, and Task; it is not a manually curated subset and does not replace the detailed records. Do not retain an `/scope/issues/` source, route, redirect, or navigation ID.
Generate the matrix from the same validated canonical data and status selector used by Roadmap and Board views. Include every item, including `DONE` and `CANCELLED`, with at least:
@@ -85,22 +98,24 @@ Generate the matrix from the same validated canonical data and status selector u
ID | type | title | direct parent/resulting scope | delivery status | EXACT/DERIVED | blocked flag/reason | owner | approval gates | required children | dependencies | release/deployment evidence | last evidenced transition | canonical record link
```
Provide type/status totals and filters, but preserve a semantic table that contains the complete unfiltered matrix for search, print, accessibility, and no-JavaScript use. Sort deterministically by hierarchy and stable ID. Link every row to its canonical record and link every relationship to the resolved target record.
Provide type/status totals and filters. Render exactly one semantic matrix table: it initially contains every governed record, and search/type/status controls narrow that same table. Do not add a second “complete unfiltered” disclosure or duplicate table. Keep the current table usable for print, accessibility, and no-JavaScript output. Sort deterministically by hierarchy and stable ID. Link every row to its canonical record and every relationship to the resolved target record.
Fail validation when any canonical item is absent or duplicated; a required relationship is dangling, one-sided, or double-counted; a status is invalid for the item type; `status_source` is missing or wrong; a derived status disagrees with the unified roll-up algorithm; a blocked item lacks a reason; or a transition/evidence link is not durable. The page must expose stale or contradictory states rather than silently filtering them out.
Any canonical status, relationship, gate, owner, blocker, or evidence change must update the Issue Status Matrix in the same reviewed change. Acceptance requires selector/table count parity, type/status total parity, link validation, keyboard and screen-reader access, strict production build, browser console/network health, and remote exact-head readback.
Any canonical status, relationship, gate, owner, blocker, or evidence change must update Overview in the same reviewed change. Acceptance requires selector/table count parity, type/status total parity, link validation, keyboard and screen-reader access, strict production build, browser console/network health, and remote exact-head readback.
### Epics and Features
### Epics, Features, and Tasks
Use stable project-scoped IDs:
Use stable project-scoped reader IDs. Keep canonical identity and reader display identity as separate fields whenever the repository data model already distinguishes them:
```text
Epic: <UPPERCASE_PROJECT_CODE>-EP-<NUMBER>
Feature: <UPPERCASE_PROJECT_CODE>-FT-<NUMBER>
Task canonical ID: TASK-<ZERO_PADDED_NUMBER>
Task display ID: <UPPERCASE_PROJECT_CODE>-TS-<NUMBER>
```
Allocate numbers monotonically. Never reuse or renumber an ID after rejection, deferral, deletion, or consolidation.
Allocate reader numbers monotonically. Never reuse or renumber an Epic or Feature ID, a Task display ID, or a canonical record ID after rejection, deferral, deletion, or consolidation. Every Task requires explicit `canonical_id: TASK-<ZERO_PADDED_NUMBER>` and `display_id: <UPPERCASE_PROJECT_CODE>-TS-<NUMBER>` fields. Bind dependencies, links, event histories, evidence, and append-only hashes to `canonical_id`; use `display_id` only for reader-facing navigation and labels. Existing Task canonical IDs never change. Allocate canonical identity for new Tasks through the repository's canonical data model; never infer it from a sidebar label or display ID.
Minimum Epic fields:
@@ -114,13 +129,27 @@ Minimum Feature fields:
ID | Epic | user/problem statement | expected value | scope | acceptance outcomes | status | owner | dependencies | risks | evidence
```
Each Epic page contains a linked Features table with current statuses. Each Feature page contains title, description, value, scope, acceptance outcomes, dependencies, risks, human approval evidence, and a linked table of authoritative Architecture tasks when they exist. Scope never creates duplicate task identities.
Each Epic page uses a concise reader card showing the unified delivery status, owner, goal, benefit, problem/opportunity, constraints, clickable child-Feature tags, and original source, followed by its `Features` group. Do not expose legacy aliases, decision-history tables, a separate Feature-set completeness review, or a Canonical product questions section on the reader page. Each Feature page contains title, description, value, scope, acceptance outcomes, dependencies, risks, human approval evidence, Architecture requirement/readiness traceability, and a `Tasks` group linking every canonical child Task page.
Scope is the canonical Task record and reader-page host, while Architecture remains semantic owner of task derivation, dependencies, and readiness. Kanban and Delivery own task flow and execution evidence. Synchronize those dimensions into the Scope reader without duplicating ownership or inventing transitions. Store canonical Task identity and project-scoped display identity in explicit separate fields. During display-ID migration, preserve historic canonical identities, aliases, evidence, and append-only hashes; do not rewrite historical events or hashes solely to replace a legacy display name.
Approval is a gate, not a delivery status. Preserve `Approved for Solution`, implementation approval, conditions, and decision evidence in dedicated fields and append-only histories; do not overload the item's delivery status with approval language.
### Ideas
Ideas are early opportunities not yet accepted as Epics or Features. Record stable local reference, title, description, evidence/source, owner when known, status, and resulting Epic/Feature links. Preserve provenance after promotion.
Ideas are early opportunities not yet accepted as Epics or Features. Record stable local reference, title, goal, benefit, source, owner when known, unified delivery status, and resulting Epic/Feature links. Preserve provenance after promotion. The Ideas parent page and each Idea child page must be visible in the Scope sidebar and use a readable card/detail layout rather than tables. Reader metadata shows status and owner, not disposition; never present `Recorded`, promotion wording, or an approval gate as the delivery status.
### Questions
Questions are governed product decisions, separate from delivery status and approval. Keep a Questions parent page and one sidebar-visible child page per canonical Question. Show the question, why it matters, affected scope, owner, status, answer when available, and original source without using tables.
Render affected or resulting governed records as a borderless vertical list of ordinary links, sorted deterministically by entity type and canonical ID. Every governed record is a separate list row containing exactly one full-surface anchor to that record's canonical documentation URL; never combine multiple IDs or links into one visual item, synthesize a URL from the ID, or surround the relationship section/link with card or tag borders. Each link shows entity type, canonical ID, title, and a directional cue, with underlining, row spacing, pointer cursor, enabled pointer events, keyboard focus treatment, and an accessible label. Validate every generated Idea page by counting separate anchors, requiring one unique valid target per row, proving every target route exists, and checking deployed HTML and CSS together. Label reader-facing source sections **Original source**, not Evidence. For Discord sources, render each link as `Discord – <Channel name> – <Author>` while retaining the exact source-message URL.
Published stylesheet URLs must be derived from the actual CSS byte-content hash so changed reader CSS cannot reuse an immutable cached URL. Stage the complete Pages site, verify the staged stylesheet bytes and filename hash, and atomically replace the deployed directory; never publish by deleting the live directory and copying files into it incrementally.
The Epic registry graph must not expose a `View accessible data table` disclosure. Keep Epic nodes keyboard-accessible, labelled, and linked to canonical records; use the detailed Epic and Feature pages as the reader surface.
Do not maintain a separate Product Register page. Overview and the canonical Epic, Feature, Idea, and Question pages are the product lookup surfaces.
## Unified delivery lifecycle and roll-up
@@ -204,7 +233,7 @@ Use Dagre for ordinary directed graphs and ELK only for complex or grouped graph
Documentation canvases are read-only. Disable mutation affordances, including `nodesDraggable={false}`, `nodesConnectable={false}`, connection creation, deletion, and accidental persistence. Preserve keyboard navigation, meaningful accessible labels and authoritative-record links, visible focus, non-color-only meaning, reduced-motion behavior, responsive controls, and sharp styling with `border-radius: 0`.
Acceptance requires canonical-YAML validation, graph/table parity from the same selector, stable deterministic output, missing-reference failure or explicit warning behavior, empty/loading/error states, keyboard and screen-reader checks, no-JavaScript fallback, production build, browser console/network health, and remote exact-head verification. React Flow supplements the Roadmap, Epic/Feature records, and semantic tables; it never replaces governed Scope records.
Acceptance requires canonical-YAML validation, graph/table parity where a semantic table is part of the intended view, stable deterministic output, missing-reference failure or explicit warning behavior, empty/loading/error states, keyboard and screen-reader checks, production build, browser console/network health, and remote exact-head verification. The Epic registry intentionally omits the expandable table disclosure and instead requires keyboard-accessible linked nodes plus canonical detail pages. React Flow supplements the Roadmap, Epic/Feature records, and semantic tables; it never replaces governed Scope records.
## Proactive Iteration Requirement
@@ -225,7 +254,7 @@ Use evidence from all six same-project channels. Delivery and release outcomes m
1. Confirm the exact project code and six approved channel IDs.
2. Read new activity from the other five channels and enough Scope history to avoid duplication.
3. Separate verified facts, human decisions, proposals, forecasts, and unresolved questions.
4. Inspect Roadmap, Epics, Features, Ideas, links, IDs, unified delivery statuses, required-child roll-ups, and approval evidence.
4. Inspect Overview, Roadmap, Ideas, Questions, the exact Epics → Epic → Features → Feature → Tasks hierarchy, every separate Task reader page, links, IDs, unified delivery statuses, required-child roll-ups, and approval evidence.
5. Reconcile architecture feasibility, Kanban flow, delivery progress, and release outcomes against scope.
6. Add or materially improve at least one useful evidence-based artifact, or document the exact evidence/approval blocker.
7. Load `documentation-docusaurus`, validate menu order, dedicated sidebar, hierarchy, links, and documentation build, then verify remote state.
@@ -255,7 +284,7 @@ Requires human approval for:
2. Approving a proposal because nobody objected.
3. Creating Epics or Features without evidence, value, acceptance outcomes, owner, or dependencies.
4. Using generic IDs instead of project-scoped stable IDs.
5. Duplicating Architecture task records in Scope.
5. Treating Scope's canonical Task reader pages as ownership of derivation/readiness, which remains with Architecture, or of flow, which remains with Kanban/Delivery.
6. Mixing approved/current state with predictions in the Roadmap.
7. Ignoring Architecture, Kanban, Delivery, or Releases evidence.
8. Inspecting another project's channels.
@@ -266,15 +295,21 @@ Requires human approval for:
13. Deriving a parent from an incomplete, duplicated, or unvalidated child set.
14. Counting a cancelled child as done or silently excluding it without an explicit scope decision.
15. Moving a parent to `TO_BE_RELEASED` while any required child remains in backlog, design, active delivery, or progress.
16. Flattening the reader hierarchy by placing Features directly under an Epic or Tasks outside their owning Feature's `Tasks` group.
17. Rewriting historic canonical identities, evidence, or append-only hashes solely to adopt `<UPPERCASE_PROJECT_CODE>-TS-<NUMBER>` display IDs.
## Verification Checklist
- [ ] Only the six same-project channels were inspected.
- [ ] Scope appears immediately before Architecture with its own sidebar.
- [ ] Sidebar order is Roadmap, Epics with nested Features, then Ideas.
- [ ] Sidebar order is Overview, Roadmap, Ideas with child pages, Questions with child pages, then the exact Epics → Epic → Features → Feature → Tasks hierarchy.
- [ ] Ways of Working starts with a separate Scope page explaining the ticket hierarchy and governed statuses.
- [ ] Ideas and Questions use table-free parent/child pages; no Product Register page exists.
- [ ] Roadmap distinguishes verified current state from predicted plans.
- [ ] Epics and Features use stable project-scoped IDs and valid parent-child links.
- [ ] Every Epic links child Features; every Feature links authoritative tasks when present.
- [ ] Epics, Features, and Tasks use stable project-scoped IDs and valid parent-child links; Task display IDs use `<UPPERCASE_PROJECT_CODE>-TS-<NUMBER>`.
- [ ] Every Epic has an explicit Features group; every Feature has an explicit Tasks group; every Task has a separate canonical Scope reader page.
- [ ] Scope hosts Task readers, Architecture owns derivation/dependencies/readiness, and Kanban/Delivery own flow.
- [ ] Display-ID migration preserves historic canonical identities, evidence, aliases, and append-only hashes.
- [ ] Ideas preserve provenance when promoted.
- [ ] Every item uses the governed status vocabulary for its type; approval, blocking, and release evidence remain separate fields.
- [ ] Idea, Epic, and Feature roll-ups use complete validated required-child sets with no ancestor/descendant double counting.