Skip to content

feat(status): add /awos:status kanban board plugin command - #164

Open
dustyo-O wants to merge 5 commits into
mainfrom
feat/awos-status-command
Open

feat(status): add /awos:status kanban board plugin command#164
dustyo-O wants to merge 5 commits into
mainfrom
feat/awos-status-command

Conversation

@dustyo-O

@dustyo-O dustyo-O commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

What

Adds /awos:status — a read-only plugin command that renders a Kanban board of where every feature stands, read from the project's own context/ documents. It never mutates state; it scans and prints.

Roadmap item: Kanban visibility surface (/awos:status) (SDLC).

The board

Columns are the functional-spec lifecycle states, laid out as a kanban grid sized to ~80 columns — three per row (Draft · In Review · Approved, then Completed · Other). Each feature is a card:

┌───────────────────────┐
│ OAPBCRNA-122          │  ticket
│ 005 · Task Cards Fee… │  spec number · title
│ Claude (with Dusty)   │  author
│ 🟥 HUGE         5d 🟤│  size · days in current status
└───────────────────────┘
  • Size — relative to the project's task-count terciles: 🟥 HUGE / 🟨 Medium / 🟩 small (square emoji + casing).
  • Days in current status — from git: ⚪ <3 · 🟡 ≥3 · 🔴 ≥5 · 🟤 ≥7 (circle emoji).
  • Emoji is the first-class colour mechanism — ANSI escape codes don't render in the Markdown chat surface, so emoji carry the colour; ANSI is a documented secondary enhancement only.
  • Other column captures specs whose Status isn't one of the four canonical values, so nothing is silently dropped.

Contents

  • plugins/awos/commands/status.md — the command prompt (plugin command, no core wrapper, per the /awos:flow precedent).
  • plugins/awos/scripts/status-board.py — a dependency-free (Python 3 stdlib + git), read-only reference renderer. status.md points at it as the runnable spec, so the board can be produced deterministically instead of hand-drawn.
  • Plugin version bump 2.4.2 → 2.5.0 (plugin.json + marketplace.json + flow.md generator constant + EXPECTED_PLUGIN_VERSION).
  • Plugin README documents the board; lint pins the card contract, emoji/ANSI policy, grid layout, Other column, and the reference-script link.

Testing

Validated against 12 real AWOS projects (7–40 specs each). Lint suite: 147 pass / 0 fail. Installer + fixtures layers unaffected. Behavioural coverage belongs in awos-qa per CLAUDE.md.

🤖 Generated with Claude Code

Summary by CodeRabbit

Summary by CodeRabbit

  • New Features

    • Added /awos:status, a read-only Kanban board showing feature delivery stages, progress indicators, status age, sizing, and next steps.
  • Documentation

    • Updated quick-start and AWOS plugin documentation with status board guidance and usage details.
  • Tests

    • Added checks covering status board behavior, layout, visual indicators, and version expectations.
  • Chores

    • Updated AWOS and marketplace metadata to version 2.5.0.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@dustyo-O, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 37 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 0dc2e20a-6b4a-4ce9-8016-c544a6030b40

📥 Commits

Reviewing files that changed from the base of the PR and between 5520341 and a5efcda.

📒 Files selected for processing (2)
  • plugins/awos/commands/status.md
  • plugins/awos/scripts/status-board.py
📝 Walkthrough

Walkthrough

Adds /awos:status, a read-only Kanban status reporter with a bundled Python renderer, documentation, plugin metadata updates to version 2.5.0, and corresponding lint coverage.

Changes

Status board feature

Layer / File(s) Summary
Release metadata and documentation
.claude-plugin/marketplace.json, plugins/awos/.claude-plugin/plugin.json, README.md, plugins/awos/README.md, plugins/awos/commands/flow.md
Updates plugin versions and documents /awos:status, its status board behavior, and the bundled renderer.
Status command contract
plugins/awos/commands/status.md
Defines read-only feature discovery, metadata and roadmap extraction, Kanban rendering, and next-step selection.
Reference board renderer
plugins/awos/scripts/status-board.py
Reads project specs and tasks, computes size and status indicators, renders fixed-width Kanban columns, and supports optional filtering.
Status contract validation
tests/lint-prompts.test.js
Adds assertions for the command contract, renderer presence, formatting rules, state sources, and version consistency.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant StatusCommand
  participant ProjectContext
  participant StatusBoard
  StatusCommand->>ProjectContext: discover specs and roadmap documents
  StatusCommand->>StatusBoard: provide project directory and optional filter
  StatusBoard->>ProjectContext: read functional specs and tasks
  StatusBoard->>StatusBoard: group statuses and render cards
  StatusBoard-->>StatusCommand: print Kanban board
Loading

Possibly related PRs

  • provectus/awos#134: Updates overlapping AWOS metadata, version references, and shared lint coverage.
  • provectus/awos#139: Updates AWOS plugin metadata and versioning to 2.5.0.
  • provectus/awos#168: Updates overlapping plugin version metadata and generator-version references.

Suggested reviewers: workshur

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 29.41% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely identifies the main change: adding the /awos:status Kanban board plugin command.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/awos-status-command

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/awos/.claude-plugin/plugin.json`:
- Line 9: Reformat the keywords array in the plugin manifest using Prettier’s
80-column layout, expanding it across multiple lines with two-space indentation
while preserving the existing keyword values and order.

In `@plugins/awos/commands/status.md`:
- Line 44: Update the “Step 1: Discover features” heading under “# PROCESS” from
level-three to level-two Markdown syntax, preserving the existing heading text
and process-step structure.

In `@plugins/awos/README.md`:
- Around line 103-110: Annotate every affected fenced example with an explicit
language identifier: mark the card diagrams in plugins/awos/README.md lines
103-110 and plugins/awos/commands/status.md lines 83-90 as text, mark the
command examples in plugins/awos/README.md lines 114-117 as bash or text, and
mark the directory tree in plugins/awos/README.md lines 123-146 as text.

In `@plugins/awos/scripts/status-board.py`:
- Around line 91-98: Update the task-counting logic in the status-board script
to count only atomic checklist entries that are either prefixed with “[Agent:]”
or nested beneath a slice; exclude unrelated top-level and composite checklist
items while preserving the existing Slice-header exclusion.
- Around line 75-76: Update the status-board flow around the directory parsing
and sizer/filter logic to retain each card’s parsed short name, compute size
thresholds from all project specs before applying the focus filter, and filter
displayed cards by the documented short name rather than the title. Keep the
existing project-wide tiers and display behavior for unfiltered results.
- Around line 99-104: Update the status-age calculation around the git log
lookup so it dates the commit that changed the file’s Status field rather than
the latest commit affecting the file. When that history is unavailable, fall
back to the documented directory commit and file mtime sources instead of
defaulting to zero; preserve the existing days calculation once a valid
timestamp is selected.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 40ab736b-8600-4326-865c-6bfad29bf19c

📥 Commits

Reviewing files that changed from the base of the PR and between a98d515 and 4dce38c.

📒 Files selected for processing (8)
  • .claude-plugin/marketplace.json
  • README.md
  • plugins/awos/.claude-plugin/plugin.json
  • plugins/awos/README.md
  • plugins/awos/commands/flow.md
  • plugins/awos/commands/status.md
  • plugins/awos/scripts/status-board.py
  • tests/lint-prompts.test.js

},
"license": "MIT",
"keywords": ["audit", "code-quality", "dimensions", "delivery-flow", "bug-fix"]
"keywords": ["audit", "code-quality", "dimensions", "delivery-flow", "bug-fix", "status", "kanban"]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Format the expanded keyword array with Prettier.

Line 9 exceeds the configured width and should be expanded to Prettier’s multi-line array layout. As per coding guidelines, format repository files with Prettier using 80-column width and two-space indentation.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/awos/.claude-plugin/plugin.json` at line 9, Reformat the keywords
array in the plugin manifest using Prettier’s 80-column layout, expanding it
across multiple lines with two-space indentation while preserving the existing
keyword values and order.

Source: Coding guidelines

Comment thread plugins/awos/commands/status.md Outdated
Comment thread plugins/awos/README.md
Comment on lines +103 to +110
```
┌───────────────────────┐
│ OAPBCRNA-122 │ ticket
│ 005 · Task Cards Fee… │ spec number · title
│ Claude (with Dusty) │ author
│ 🟥 HUGE 5d 🟤 │ size · days in current status
└───────────────────────┘
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Add language identifiers to fenced examples.

  • plugins/awos/README.md#L103-L110: mark the card diagram as text.
  • plugins/awos/README.md#L114-L117: mark command examples as bash or text.
  • plugins/awos/README.md#L123-L146: mark the directory tree as text.
  • plugins/awos/commands/status.md#L83-L90: mark the card diagram as text.
🧰 Tools
🪛 markdownlint-cli2 (0.23.0)

[warning] 103-103: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

📍 Affects 2 files
  • plugins/awos/README.md#L103-L110 (this comment)
  • plugins/awos/README.md#L114-L117
  • plugins/awos/README.md#L123-L146
  • plugins/awos/commands/status.md#L83-L90
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/awos/README.md` around lines 103 - 110, Annotate every affected
fenced example with an explicit language identifier: mark the card diagrams in
plugins/awos/README.md lines 103-110 and plugins/awos/commands/status.md lines
83-90 as text, mark the command examples in plugins/awos/README.md lines 114-117
as bash or text, and mark the directory tree in plugins/awos/README.md lines
123-146 as text.

Source: Linters/SAST tools

Comment thread plugins/awos/scripts/status-board.py
Comment thread plugins/awos/scripts/status-board.py Outdated
Comment thread plugins/awos/scripts/status-board.py Outdated
dustyo-O pushed a commit that referenced this pull request Jul 29, 2026
CodeRabbit review of #164:

- status-board.py: compute size tiers over ALL project specs before the focus
  filter (a one-spec view previously always rendered HUGE), and filter by the
  directory short name / index rather than the free-text title.
- status-board.py: count only atomic tasks — [Agent:]-tagged or under a slice
  header — via slice-state tracking, excluding stray top-level checkboxes.
- status-board.py: date the current status from the commit that last changed
  the Status: line (git log -L), falling back to the spec dir's last commit,
  then file mtime, then 0 — matching the documented behaviour.
- status.md: PROCESS steps use ## (was ###) to match flow.md and satisfy MD001;
  size prose says Medium to match the rendered casing.

Skipped (with reason): the keywords-array width note (Prettier — our format gate
— accepts the file as-is) and the fenced-code-language note (the plugin README
and core command docs use bare fences by convention; a repo-wide MD040 sweep is
out of scope for this PR).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@dustyo-O

Copy link
Copy Markdown
Contributor Author

Addressed the review in 29fef41.

Fixed (Major correctness — status-board.py):

  • Focus filter + tiers — size tiers now computed over all project specs before the focus filter (a one-spec view no longer renders everything HUGE), and filtering matches the directory index/short-name rather than the free-text title.
  • Atomic task counting — counts only [Agent:]-tagged tasks or tasks under a slice header (slice-state tracking), excluding stray top-level checkboxes.
  • Status-transition dating — dates the commit that last changed the Status: line via git log -L, with dir commit → file mtime → 0 fallback, matching the documented behaviour.

Fixed (style):

  • status.md PROCESS steps now use ## (was ###) — matches the sibling flow.md and satisfies MD001.

Skipped, with reason:

  • plugin.json keywords widthprettier --check passes on the file; Prettier is this repo's formatting gate (.prettierrc / CI), and it keeps the JSON array inline. Applying the width note would fight our formatter.
  • Fenced-code language identifiers (MD040) — the plugin README (16 of 17 fences) and the core commands//docs/ markdown use bare fences by convention. Annotating only the new blocks would be inconsistent, and a repo-wide sweep is out of scope for this PR.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/awos/scripts/status-board.py`:
- Around line 75-84: The slice-task counting loop must stop counting when
leaving the current Slice section. Update the logic around in_slice and the
heading/list parsing to track the active structural depth, clearing slice scope
at the next sibling or ancestor boundary such as a later peer heading, while
preserving counting for checkboxes within the active Slice section.
- Around line 90-98: Update the exception handling in _git_epoch() to catch
subprocess.TimeoutExpired alongside OSError, returning None so the existing
directory/mtime fallback logic runs when the git history lookup exceeds its
timeout.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 8d784b20-b728-4f48-9d42-87484b9b1aae

📥 Commits

Reviewing files that changed from the base of the PR and between 4dce38c and 29fef41.

📒 Files selected for processing (2)
  • plugins/awos/commands/status.md
  • plugins/awos/scripts/status-board.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • plugins/awos/commands/status.md

Comment thread plugins/awos/scripts/status-board.py Outdated
Comment thread plugins/awos/scripts/status-board.py
@AlexanderMakarov

AlexanderMakarov commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

@dustyo-O - could you please attach screenshots of results on some not-NDA project (or just blurred)?

Because for now everyone interested in feature need to clone this branch, understand how to run it on it's repo, try different shapes, etc. It is quite unfair to reviewer-s 😉

Just look at README-s of https://github.com/BloopAI/vibe-kanban and https://github.com/B1tMaster/Auto-Claude - this is a good level of "promotion".

And please fix conflicts.

Alexander Shleyko and others added 3 commits July 31, 2026 15:40
A read-only visibility surface over the document-centric workflow: scans
context/spec/*/ and the roadmap, and renders a Kanban board with columns by
functional-spec lifecycle state (Draft → In Review → Approved → Completed).
Each card shows task progress (atomic [Agent:]-tagged tasks, excluding slice
headers to match /awos:implement's counting) and the roadmap item it
delivers, followed by a per-phase roll-up and a next-step suggestion.

Ships as a plugin command (plugins/awos/commands/), documented in the plugin
README, with no core wrapper — mirroring the /awos:flow precedent. Bumps the
plugin version 2.4.2 → 2.5.0 across plugin.json, marketplace.json, the
flow.md generator constant, and the EXPECTED_PLUGIN_VERSION lint pin, and
adds a status.md contract test (read-only, state sources, lifecycle columns,
task counting).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
Evolve the /awos:status board into a triage-ready kanban grid and ship a
deterministic renderer alongside it:

- Card model: ticket · number+title · author · size+days, box-drawing borders.
- Emoji is the first-class colour mechanism (ANSI does not render in the
  Markdown chat surface): 🟥/🟨/🟩 size square by the size word, ⚪/🟡/🔴/🟤
  days circle by the day count. Size tiers HUGE / Medium / small, relative to
  the project's task-count terciles; days-in-status derived from git.
- Layout: kanban grid sized to ~80 cols — three columns per row
  (Draft · In Review · Approved, then Completed · Other) instead of one long
  stack. An Other column captures non-canonical statuses so no spec is dropped.
- Ship plugins/awos/scripts/status-board.py — a dependency-free (stdlib + git),
  read-only reference renderer; status.md points at it as the runnable spec.
- Lint pins the card contract, emoji/ANSI policy, grid, Other column, and the
  reference-script link; README documents the board.

Co-Authored-By: Claude Opus 4.8 <[email protected]>
CodeRabbit review of #164:

- status-board.py: compute size tiers over ALL project specs before the focus
  filter (a one-spec view previously always rendered HUGE), and filter by the
  directory short name / index rather than the free-text title.
- status-board.py: count only atomic tasks — [Agent:]-tagged or under a slice
  header — via slice-state tracking, excluding stray top-level checkboxes.
- status-board.py: date the current status from the commit that last changed
  the Status: line (git log -L), falling back to the spec dir's last commit,
  then file mtime, then 0 — matching the documented behaviour.
- status.md: PROCESS steps use ## (was ###) to match flow.md and satisfy MD001;
  size prose says Medium to match the rendered casing.

Skipped (with reason): the keywords-array width note (Prettier — our format gate
— accepts the file as-is) and the fenced-code-language note (the plugin README
and core command docs use bare fences by convention; a repo-wide MD040 sweep is
out of scope for this PR).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@dustyo-O
dustyo-O force-pushed the feat/awos-status-command branch from 29fef41 to d5f7bd5 Compare July 31, 2026 13:40
Layout: lay the lifecycle columns side by side in one row (Draft · In
Review · Approved · Completed, then Other) instead of the three-per-row
grid, so the whole delivery flow reads left to right on a wide terminal.

Card: move the spec number to the top line — right of the ticket, or
alone on the left when the spec has none — so the title gets the card's
full inner width. Adds a justify() helper shared by the top and
size/days lines.

CodeRabbit fixes on status-board.py:
- count_atomic_tasks: terminate a slice's scope at its structural
  boundary (a peer/ancestor heading, or a checklist item dedented to the
  slice item's indent) so tasks under a later section such as `## Notes`
  are no longer miscounted as slice tasks.
- _git_epoch: catch subprocess.TimeoutExpired alongside OSError, so a
  slow `git log -L` falls back to the dir commit / mtime as documented
  instead of returning 0 days.

Docs: add the rendered board screenshot to the plugin README and update
the card diagrams; lint now pins the single-row layout contract.

Co-Authored-By: Claude Opus 4.8 <[email protected]>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/awos/commands/status.md`:
- Around line 83-97: Label the fenced rendered-board example in the status
documentation as a text block by changing its opening fence to specify text,
while leaving the example contents unchanged.

In `@plugins/awos/scripts/status-board.py`:
- Around line 271-274: Update the status-board rendering flow around band() to
read and parse context/product/roadmap.md, then append the required Step 5
per-phase completion roll-up after the board output. When the roadmap file is
absent, report that condition instead of silently omitting the summary; preserve
the existing board columns and rendering behavior.
- Around line 107-117: Update the list parsing around the checkbox regex so
generic list items are recognized and can close an active slice before checkbox
processing. When a non-checkbox peer item appears at the slice indent, clear
slice_indent; preserve existing counting for checkbox items and nested items
within the slice.
- Around line 259-265: Update the focus filtering in the argument-handling flow
to match a spec’s index or short name exactly, rather than using substring
containment. Use the existing `s['num']` and `s['short']` identifiers in the
`specs` filter, while preserving the no-match message and return behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ad7bfbc5-00d0-4327-9ecd-4a7fb19fa2e9

📥 Commits

Reviewing files that changed from the base of the PR and between 29fef41 and 5520341.

⛔ Files ignored due to path filters (1)
  • plugins/awos/assets/kanban.png is excluded by !**/*.png
📒 Files selected for processing (8)
  • .claude-plugin/marketplace.json
  • README.md
  • plugins/awos/.claude-plugin/plugin.json
  • plugins/awos/README.md
  • plugins/awos/commands/flow.md
  • plugins/awos/commands/status.md
  • plugins/awos/scripts/status-board.py
  • tests/lint-prompts.test.js
🚧 Files skipped from review as they are similar to previous changes (5)
  • README.md
  • plugins/awos/.claude-plugin/plugin.json
  • plugins/awos/commands/flow.md
  • .claude-plugin/marketplace.json
  • tests/lint-prompts.test.js

Comment thread plugins/awos/commands/status.md Outdated
Comment thread plugins/awos/scripts/status-board.py
Comment thread plugins/awos/scripts/status-board.py
Comment thread plugins/awos/scripts/status-board.py
@dustyo-O

Copy link
Copy Markdown
Contributor Author

CodeRabbit follow-ups on the status board:
- count_atomic_tasks: a plain non-checkbox peer bullet (e.g. `- Notes`) at
  the slice item's indent now closes a list-form slice, so a checkbox
  nested under that peer is no longer miscounted as a slice task. The
  scope-close runs for any list item (checkbox or bullet) that dedents to
  the slice level, ahead of the checkbox-count decision.
- status.md: label the card-example fence `text` (markdownlint MD040), and
  correct the stale "number · title" width note to the post-redesign
  layout (title on its own line; top line justifies ticket + number).

Co-Authored-By: Claude Opus 4.8 <[email protected]>
@AlexanderMakarov
AlexanderMakarov self-requested a review August 5, 2026 12:20
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.

2 participants