diff options
| -rw-r--r-- | todo.org | 54 |
1 files changed, 18 insertions, 36 deletions
@@ -781,10 +781,10 @@ Each item below is a one-line summary of a sub-TODO further down. Tick the box w - [X] [#B] =respond-to-cj-comments=: fallback when =humanizer= or =emacsclient= unavailable (moot — superseded by /voice + VERIFY pattern) **** Branch workflow -- [ ] [#A] =finish-branch=: fix base-branch detection -- [ ] [#B] =finish-branch=: worktree-aware pull/merge safety -- [ ] [#B] =start-work=: tool-availability + ceremony-scaling rules -- [ ] [#B] =start-work=: claim-before-justify rollback risk +- [X] [#A] =finish-branch=: fix base-branch detection +- [X] [#B] =finish-branch=: worktree-aware pull/merge safety +- [X] [#B] =start-work=: tool-availability + ceremony-scaling rules +- [X] [#B] =start-work=: claim-before-justify rollback risk **** Tests / TDD - [X] [#B] =add-tests=: fix missing =typescript-testing.md= reference or add ruleset (moot — ruleset now exists) @@ -809,8 +809,8 @@ Each item below is a one-line summary of a sub-TODO further down. Tick the box w - [ ] [#B] =arch-evaluate=: report skipped tool checks explicitly **** C4 modeling -- [ ] [#A] =c4-analyze= + =c4-diagram=: notation/output fallback (not draw.io-only) -- [ ] [#B] =c4-analyze= + =c4-diagram=: clarify abstraction boundaries +- [X] [#A] =c4-analyze= + =c4-diagram=: notation/output fallback (not draw.io-only) +- [X] [#B] =c4-analyze= + =c4-diagram=: clarify abstraction boundaries **** Global rules - [ ] [#B] =commits.md=: split DeepSat/Linear/Slack-specific from global rules @@ -926,35 +926,21 @@ Already resolved by a prior migration: =grep= for =/home/= and =/Users/= in =.cl Overtaken by two later changes: =/humanizer= was replaced by =/voice personal= (no =/humanizer= invocation remains), and the mandatory =emacsclient= summary-open was replaced by the in-place VERIFY-task pattern (workflow line ~262, Craig's 2026-05-12 standing instruction). Only a stale descriptive phrase remained — tidied "humanizer's signs of AI writing" to "the signs of AI writing." The original fresh-environment-fallback concern no longer applies as written. -*** TODO [#A] =finish-branch=: fix base-branch detection +*** 2026-05-22 Fri @ 14:51:37 -0500 Fixed finish-branch base-branch detection -Phase 2 says "determine base branch" but the command shown returns a merge-base -commit SHA, not the branch name to check out, pull, merge into, or pass as PR -base. Replace with explicit branch detection: upstream PR base if present, -configured default branch from =origin/HEAD=, or user-selected branch, then -compute merge-base separately. +Rewrote Phase 2: resolve the base *branch name* in priority order (open PR's =baseRefName=, then =git symbolic-ref --short refs/remotes/origin/HEAD= stripped, then ask), and compute the merge-base *SHA* separately only where a commit range is needed. Made the branch-name-vs-merge-base distinction explicit, since the old command returned a SHA where a branch name was needed. -*** TODO [#A] =finish-branch=: make pull/merge steps safer and worktree-aware +*** 2026-05-22 Fri @ 14:51:37 -0500 Made finish-branch merge safer + worktree-aware -Option 1 runs =git pull= and =git merge --no-ff= after checkout. Add checks for -dirty worktree, upstream tracking, protected branches, and rebase-vs-merge team -policy. Worktree detection via grepping branch names is fragile; use =git -worktree list --porcelain= or =git rev-parse --git-common-dir= based checks. +Added pre-flight checks to Option 1 (Merge Locally): dirty-tree refusal with no auto-stash, protected-branch awareness, upstream-gated =git pull --ff-only=, and merge-commit-vs-rebase as a team-policy choice instead of a hardcoded =--no-ff=. Replaced the fragile =git worktree list | grep <branch>= detection with a =git rev-parse --git-dir= vs =--git-common-dir= comparison plus =git worktree list --porcelain= for the path. -*** TODO [#A] =start-work=: add tool-availability and ceremony-scaling rules +*** 2026-05-22 Fri @ 14:51:37 -0500 Added tool-availability + ceremony-scale paths to start-work -The workflow assumes Linear MCP, GitHub CLI, =humanizer=, Playwright skills, and -multi-commit TDD ceremony. Add a first-class "tools unavailable" path and a -ceremony scale: trivial local fixes should not require the full ticket, -branch, three approval gates, and commit-per-phase flow unless the user wants -that process. +Added a "Tool availability" section (graceful degradation when Linear MCP / =gh= / =/voice= / Playwright are missing — do what's available, surface what isn't, don't block) and a "Ceremony scale" section (trivial / small / standard tiers so a two-line fix skips ticket+branch+gates unless asked). The =humanizer= reference in the original item is moot — the file already uses =/voice= throughout. -*** TODO [#A] =start-work=: resolve the "claim before justify" rollback risk +*** 2026-05-22 Fri @ 14:51:37 -0500 Resolved start-work claim-before-justify rollback risk -The skill marks Linear/GitHub/todo tasks in progress before the Justify gate, -then says rolling back is required if justification fails. Consider moving -claiming after Gate 1 for personal todo tasks, or make the rollback steps -explicit per tracker with stored prior state. +Split the claim by tracker type: personal todo.org claims defer to after the Justify gate (a killed task needs no rollback), while team trackers (Linear/GitHub) still claim first to signal intent but record prior state (status, assignee, label) so the Phase 2 rollback restores exactly it. Updated the per-tracker rollback steps and the matching anti-pattern. *** 2026-05-22 Fri @ 14:28:41 -0500 Verified add-tests typescript-testing.md reference resolves (moot) @@ -1036,17 +1022,13 @@ The workflow says skip unconfigured language-specific tools silently, but the review checklist also wants checks run. For audit usefulness, list detected languages and "tool not configured" entries under Info instead of silent skips. -*** TODO [#A] =c4-analyze= and =c4-diagram=: add notation/output fallback instead of draw.io-only +*** 2026-05-22 Fri @ 14:51:37 -0500 Added notation/output fallback to c4-analyze + c4-diagram -C4 is notation-independent. These skills hard-require draw.io XML, PNG export, -and opening draw.io desktop. Add supported outputs (Structurizr DSL, Mermaid, -PlantUML, draw.io) and a fallback path when =drawio= or a GUI is unavailable. +Both commands now treat C4 as notation-independent: a "Choosing a notation" section (draw.io XML, Structurizr DSL, Mermaid with native C4 types, PlantUML/C4-PlantUML) and a headless fallback that emits a text notation (Mermaid or Structurizr DSL) and skips PNG-export/desktop-open when =drawio= or a GUI is absent, rather than failing. draw.io is now one option, not the only one. -*** TODO [#A] =c4-analyze= and =c4-diagram=: clarify C4 abstraction boundaries +*** 2026-05-22 Fri @ 14:51:37 -0500 Clarified C4 abstraction boundaries in c4-analyze + c4-diagram -Emphasize that C4 Containers are deployable/runnable units, not necessarily -Docker containers, and that Components are not separately deployable. Add a -check that every relationship and element stays at one abstraction level. +Added an "Abstraction boundaries" section to both: a Container is a separately deployable/runnable unit (not synonymous with a Docker container — a SPA or managed DB counts), a Component lives inside one Container and isn't separately deployable. Added a 4e "Verify single abstraction level" check that walks every element and relationship to confirm it stays at the diagram's level, notation-independent. *** TODO [#A] =commits.md=: split DeepSat/Linear/Slack-specific publishing rules from global commit rules |
