AGENT SKILL

issues/map

Issue-board (Issue Pivot) generation domain. Use when reasoning about `cn issues map`'s fetch, taxonomy-parse, effort-computation, and render pipeline, or about the board's JSON/HTML output contract.

适用职业律师与法务
使用场景前端开发
License 许可
Apache-2.0
所属仓库
usurobor/cnos
最近更新
2026-11-07
Stars
★ 9
Forks
0

01 前言 Front Matter

name
issues/map
scope
task-local
inputs
[ "open GitHub issues (live via API, or fixture/stdin for offline use)" ]
outputs
[ "board records (taxonomy, effort, effort_weight, unestimated)", "index.html (Voronoi + Pivot views)", "board-data.json", "README.md (generated, do-not-hand-edit)" ]
triggers
[ "issues map", "issue board", "issue pivot", "board-data.json" ]
visibility
public
description
Issue-board (Issue Pivot) generation domain. Use when reasoning about `cn issues map`'s fetch, taxonomy-parse, effort-computation, and render pipeline, or about the board's JSON/HTML output contract.
kata_surface
none
artifact_class
skill
governing_question
How does an open-issue set become a taxonomy-aware, effort-weighted board record set and a self-contained interactive board output?

03 SKILL.md 正文

Issue map

Core Principle

The board is a projection of the issue taxonomy, not an independent data model: every field a board record carries is derived from taxonomy labels (skills/taxonomy/SKILL.md), never invented locally.

Implementation location

The domain implementation lives at src/packages/cnos.issues/commands/issues-map/ as its own Go module (module github.com/usurobor/cnos/packages/cnos.issues/commands/issues-map), co-located with this package, mirroring the cnos#392 cdd-verify precedent exactly:

  • wired into src/go/go.mod via a require+replace pair;
  • added to go.work's use (...) list;
  • dispatched by the thin src/go/internal/cli/cmd_issues_map.go (argument parsing + one-line delegation only — no domain logic).

See src/packages/cnos.issues/SKILL.md §"Command-dispatch disposition" for why this is Go-source co-location and not package-command exec-dispatch.

Command contract

cn issues map --repo <owner/repo> --out docs/development/board
  • fetches open issues (GitHub API, or --fixture/--stdin for offline use);
  • parses kind/*, area/*, P0–P3, status:*, dispatch:cell, protocol:*, effort/* per the taxonomy;
  • computes effort, effort_weight (S=1, M=2, L=4, XL=8), and unestimated (missing effort ≠ small — nominal weight 1, visually flagged);
  • excludes kind/tracking from effort rollups by default;
  • emits index.html, board-data.json, README.md into --out.

Rule

  • The CLI dispatcher never contains taxonomy, effort, or rendering logic — that is a dispatch-boundary violation (docs/architecture/DESIGN-CONSTRAINTS.md §3.2).
  • Board output behavior (fields, weights, exclusions) is unchanged by moving the implementation's package home; a package-boundary refactor is not a license to change board semantics.

04 同仓库更多 Skills

usurobor
usurobor/cnos

issues/triage

Issue triage doctrine pointer. Use when classifying a new issue, deciding dispatch eligibility, or deciding whether to close/supersede/defer.

★ 9
usurobor
usurobor/cnos

issues/taxonomy

Issue label taxonomy pointer. Use when classifying an issue's kind/area/priority/effort/status/protocol/dispatch labels, or when the board needs to interpret them.

★ 9
usurobor
usurobor/cnos

issues

cnos.issues package entrypoint. Use when reasoning about issue taxonomy, the Issue Pivot / issue-board (`cn issues map`), the read-only CDS issue-state evaluator (`cn issues fsm evaluate`), or the current command-dispatch disposition of issue tooling.

★ 9
usurobor
usurobor/cnos

receipt-stream

Cross-cycle receipt-stream doctrine for protocol-iteration. Use when γ closes a cycle and writes the per-cycle iteration artifact (`cdd-iteration.md`), when γ updates the cross-cycle aggregator at `.cdd/iterations/INDEX.md`, when ε reads the receipt stream across cycles to surface protocol-gap patterns, when a finding's disposition lands a cross-repo patch and the cross-repo trace bundle attaches, or when a courtesy empty-findings stub is written for a `protocol_gap_count == 0` cycle.

★ 9
usurobor
usurobor/cnos

mid-flight

Mid-flight γ→in-flight-α rescue channel. Use when γ needs to change a load-bearing fact (pinned axis, scope, AC, blocker) after α has begun coding, when γ edits the cycle's GitHub issue body mid-cycle, or when a spec change lands on origin/main while α/β polling sessions are in-flight.

★ 9
usurobor
usurobor/cnos

dispatch

Dispatch-time wire-format contract between γ (orchestrator) and α/β (workers). Use when γ authors a dispatch prompt for α or β, when δ enriches an under-specified prompt at routing time, or when α reads the implementation-contract block at intake.

律师与法务Skill与智能体开发
★ 9