Repository navigation
docs: update task workflow with non-milestone task listing - #115
Conversation
Updated task-workflow.md to document the new list-tasks.sh flags for non-milestone tasks (--ideas, --bugs, --tech). Clarified the distinction between milestone and non-milestone tasks. Co-Authored-By: Claude Opus 4.5 <[email protected]>
📝 WalkthroughWalkthroughRestructures task workflow docs to separate Milestone vs Non‑Milestone tasks and adds CLI support for non‑milestone subtypes; updates multiple scripts to use stricter bash options and introduces Changes
Sequence Diagram(s)sequenceDiagram
actor Dev
participant listScript as list-tasks.sh
participant ghCLI as gh CLI / GitHub API
Dev->>listScript: run with --ideas / --bugs / --tech or no flag
alt non-milestone flag provided
listScript->>ghCLI: gh issue list --label "<label>" --state open
ghCLI-->>listScript: issues
listScript-->>Dev: prints non-milestone issues
else milestone mode
listScript->>listScript: validate active PRD file
listScript->>ghCLI: gh issue list --milestone "<PRD-name>" --state open
ghCLI-->>listScript: issues
listScript-->>Dev: prints milestone issues
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 2✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
📜 Recent review detailsConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro 📒 Files selected for processing (13)
💤 Files with no reviewable changes (1)
🧰 Additional context used🧠 Learnings (6)📓 Common learnings📚 Learning: 2026-01-06T18:02:51.422ZApplied to files:
📚 Learning: 2026-01-06T18:13:47.289ZApplied to files:
📚 Learning: 2026-01-10T10:14:57.499ZApplied to files:
📚 Learning: 2026-01-07T08:54:48.071ZApplied to files:
📚 Learning: 2026-01-10T10:14:57.499ZApplied to files:
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
🔇 Additional comments (17)
Comment |
PR Compliance Guide 🔍Below is a summary of compliance checks for this PR:
Compliance status legend🟢 - Fully Compliant🟡 - Partial Compliant 🔴 - Not Compliant ⚪ - Requires Further Human Verification 🏷️ - Compliance label |
||||||||||||||||||||||||
Deploying living-architecture with
|
| Latest commit: |
82ce374
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://7b4128d1.living-architecture.pages.dev |
| Branch Preview URL: | https://non-milestone-task-listing.living-architecture.pages.dev |
PR Code Suggestions ✨Explore these optional code suggestions:
|
|||||||||||||||||||
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In @docs/workflow/task-workflow.md:
- Around line 58-59: The doc currently claims
./scripts/create-tech-improvement-task.sh "applies appropriate label" for all
non-milestone tasks but that script only creates tech improvements; update the
wording or examples to cover Ideas and Bugs by either (A) adding the missing
scripts and names (e.g., create-idea-task.sh and create-bug-task.sh) and listing
them alongside create-tech-improvement-task.sh, or (B) explicitly noting that
create-tech-improvement-task.sh only creates Tech Improvement tasks and adding a
short instruction for creating Ideas and Bugs (e.g., use the corresponding
create-idea/create-bug script or the generic task creation command and the label
argument). Be sure to reference the create-tech-improvement-task.sh script name
and the Idea/Bug categories so readers can find and run the correct script or
follow the alternative creation steps.
In @scripts/list-tasks.sh:
- Around line 37-45: The non-milestone branch using the NON_MILESTONE_LABEL
variable doesn't exclude issues that have a milestone and prints the raw label
as the header; update the gh issue list invocation in that branch to include
--milestone "" so only issues without milestones are returned, and replace the
raw header echo with a small case statement on NON_MILESTONE_LABEL that maps
known labels (e.g., "idea", "bug", "tech improvement") to user-friendly display
names (e.g., "Ideas", "Bugs", "Tech Improvements") and echo that friendly name
before running the gh issue list command.
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (2)
docs/workflow/task-workflow.mdscripts/list-tasks.sh
🧰 Additional context used
🧠 Learnings (5)
📓 Common learnings
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-10T10:14:57.499Z
Learning: Follow the task workflow defined in `docs/workflow/task-workflow.md` from start to finish for all tasks; do not make changes or commit code without following these steps
📚 Learning: 2026-01-10T10:14:57.499Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-10T10:14:57.499Z
Learning: Use scripts in `./scripts/` for git and GitHub operations (PRs, issues, tasks); do not use `gh` or `git` commands directly unless no script exists
Applied to files:
scripts/list-tasks.shdocs/workflow/task-workflow.md
📚 Learning: 2026-01-06T18:02:51.422Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 58
File: scripts/get-pr-feedback.sh:45-55
Timestamp: 2026-01-06T18:02:51.422Z
Learning: In shell scripts that call GraphQL APIs (e.g., scripts/get-pr-feedback.sh and similar), prefer using sed-based interpolation for GraphQL variables instead of gh api graphql's -f/-F flags. Rationale: sed-based interpolation is typically simpler and more robust in Bash contexts, avoids JSON encoding pitfalls, and keeps the script portable. Implement by building the GraphQL query as a string and substituting variables with sed or parameter expansion, ensuring proper escaping. If you must use -f/-F, provide clear justification in a comment.
Applied to files:
scripts/list-tasks.sh
📚 Learning: 2026-01-06T18:13:47.289Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 58
File: scripts/reply-to-thread.sh:1-12
Timestamp: 2026-01-06T18:13:47.289Z
Learning: In shell scripts across the repository (e.g., scripts/reply-to-thread.sh), keep the code simple by not adding explicit preflight tool-availability checks for external commands (like gh or jq) when those tools would fail on first use anyway. Such checks add boilerplate without changing behavior. If you must guard against missing tools, prefer a minimal, early startup check or rely on the script failing naturally at the point of use.
Applied to files:
scripts/list-tasks.sh
📚 Learning: 2026-01-10T10:14:57.499Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-10T10:14:57.499Z
Learning: Follow the task workflow defined in `docs/workflow/task-workflow.md` from start to finish for all tasks; do not make changes or commit code without following these steps
Applied to files:
docs/workflow/task-workflow.md
- Add `set -euo pipefail` to all bash scripts for safer pipeline handling - Rename create-tech-improvement-task.sh to create-non-milestone-task.sh - Add --type flag (idea|bug|tech) to create-non-milestone-task.sh - Add mutual exclusivity check to list-tasks.sh flags - Update docs with clearer command examples Co-Authored-By: Claude Opus 4.5 <[email protected]>
|
There was a problem hiding this comment.
Actionable comments posted: 0
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (4)
scripts/create-task.sh (1)
5-10:set -ucan bypass your usage check by erroring on$1/$2/$3.With nounset enabled, the script may exit before printing usage when args are missing. Use
${N:-}in the check.Proposed fix
set -euo pipefail -if [[ -z "$1" || -z "$2" || -z "$3" ]]; then +if [[ -z "${1:-}" || -z "${2:-}" || -z "${3:-}" ]]; then echo "Usage: ./scripts/create-task.sh <milestone> <title> <body>" >&2 exit 1 fiscripts/submit-pr.sh (1)
7-33: Guard--title/--bodyvalues now thatset -uis enabled.Today
--title(or--body) without a following value can abort via nounset, skipping your usage output.Proposed fix
while [[ $# -gt 0 ]]; do case $1 in --title) + if [[ $# -lt 2 || -z "${2:-}" ]]; then + echo "Error: --title requires a value" >&2 + exit 1 + fi TITLE="$2" MODE="create" shift 2 ;; --body) + if [[ $# -lt 2 || -z "${2:-}" ]]; then + echo "Error: --body requires a value" >&2 + exit 1 + fi BODY="$2" shift 2 ;;Also: this file’s “Verify required tools are available” block conflicts with the repo preference to avoid preflight checks for
gh/jq(fail on first use instead). Based on learnings.scripts/get-pr-feedback.sh (1)
13-21: Strict mode is fine here; GraphQL interpolation approach is consistent with repo practice.Optional: consider dropping the
gh/jqpreflightcommand -vloop to match the repo’s “fail on first use” scripting style. Based on learnings.scripts/amend-task.sh (1)
5-10:set -ucan cause an “unbound variable” before your usage check runs.Use
${N:-}for positional parameters in the validation.Proposed fix
set -euo pipefail -if [[ -z "$1" || -z "$2" ]]; then +if [[ -z "${1:-}" || -z "${2:-}" ]]; then echo "Usage: ./scripts/amend-task.sh <issue-number> \"Amendment content\"" >&2 exit 1 fi
📜 Review details
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (13)
docs/workflow/task-workflow.mdscripts/activate-prd.shscripts/amend-task.shscripts/archive-prd.shscripts/cleanup-task.shscripts/create-non-milestone-task.shscripts/create-task.shscripts/create-tech-improvement-task.shscripts/get-pr-feedback.shscripts/list-tasks.shscripts/reply-to-thread.shscripts/start-task.shscripts/submit-pr.sh
💤 Files with no reviewable changes (1)
- scripts/create-tech-improvement-task.sh
🧰 Additional context used
🧠 Learnings (6)
📓 Common learnings
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-10T10:14:57.499Z
Learning: Follow the task workflow defined in `docs/workflow/task-workflow.md` from start to finish for all tasks; do not make changes or commit code without following these steps
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: packages/riviere-cli/CLAUDE.md:0-0
Timestamp: 2026-01-02T11:58:27.018Z
Learning: When modifying CLI commands in the riviere-cli tool, update the corresponding workflow prompts in docs/workflow/ directory (step-1 through step-6) to keep the extraction workflow in sync
📚 Learning: 2026-01-06T18:02:51.422Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 58
File: scripts/get-pr-feedback.sh:45-55
Timestamp: 2026-01-06T18:02:51.422Z
Learning: In shell scripts that call GraphQL APIs (e.g., scripts/get-pr-feedback.sh and similar), prefer using sed-based interpolation for GraphQL variables instead of gh api graphql's -f/-F flags. Rationale: sed-based interpolation is typically simpler and more robust in Bash contexts, avoids JSON encoding pitfalls, and keeps the script portable. Implement by building the GraphQL query as a string and substituting variables with sed or parameter expansion, ensuring proper escaping. If you must use -f/-F, provide clear justification in a comment.
Applied to files:
scripts/get-pr-feedback.shscripts/amend-task.shscripts/reply-to-thread.shscripts/create-task.shscripts/cleanup-task.shscripts/archive-prd.shscripts/create-non-milestone-task.shscripts/submit-pr.shscripts/list-tasks.shscripts/start-task.shscripts/activate-prd.sh
📚 Learning: 2026-01-06T18:13:47.289Z
Learnt from: NTCoding
Repo: NTCoding/living-architecture PR: 58
File: scripts/reply-to-thread.sh:1-12
Timestamp: 2026-01-06T18:13:47.289Z
Learning: In shell scripts across the repository (e.g., scripts/reply-to-thread.sh), keep the code simple by not adding explicit preflight tool-availability checks for external commands (like gh or jq) when those tools would fail on first use anyway. Such checks add boilerplate without changing behavior. If you must guard against missing tools, prefer a minimal, early startup check or rely on the script failing naturally at the point of use.
Applied to files:
scripts/get-pr-feedback.shscripts/amend-task.shscripts/reply-to-thread.shscripts/create-task.shscripts/cleanup-task.shscripts/archive-prd.shscripts/create-non-milestone-task.shscripts/submit-pr.shscripts/list-tasks.shscripts/start-task.shscripts/activate-prd.sh
📚 Learning: 2026-01-10T10:14:57.499Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-10T10:14:57.499Z
Learning: Use scripts in `./scripts/` for git and GitHub operations (PRs, issues, tasks); do not use `gh` or `git` commands directly unless no script exists
Applied to files:
scripts/get-pr-feedback.shscripts/create-non-milestone-task.shscripts/submit-pr.shdocs/workflow/task-workflow.mdscripts/list-tasks.sh
📚 Learning: 2026-01-07T08:54:48.071Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: docs/workflow/code-review.md:0-0
Timestamp: 2026-01-07T08:54:48.071Z
Learning: Applies to docs/workflow/**/*.sh : In shell scripts, flag and remove any variables that are extracted or assigned but never used.
Applied to files:
scripts/cleanup-task.sh
📚 Learning: 2026-01-10T10:14:57.499Z
Learnt from: CR
Repo: NTCoding/living-architecture PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-01-10T10:14:57.499Z
Learning: Follow the task workflow defined in `docs/workflow/task-workflow.md` from start to finish for all tasks; do not make changes or commit code without following these steps
Applied to files:
docs/workflow/task-workflow.md
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
- GitHub Check: Cloudflare Pages
🔇 Additional comments (17)
scripts/start-task.sh (1)
10-10: Strict mode looks safe here.scripts/cleanup-task.sh (1)
7-7: LGTM: Enhanced error handling.The addition of
pipefailandnounsetflags strengthens error detection. All variables in this script are properly initialized before use, making this change safe and beneficial.scripts/reply-to-thread.sh (1)
12-12: LGTM: Strict mode applied safely.The script uses
${1:-}and${2:-}patterns with explicit validation, making it fully compatible with thenounsetflag.scripts/activate-prd.sh (1)
5-10: LGTM: Improved error handling and user guidance.The strict mode change is safe given the explicit validation of
$1, and the added example enhances usability.scripts/create-non-milestone-task.sh (4)
1-20: LGTM: Clear documentation and structure.The usage function provides comprehensive guidance on all parameters and options, making the script easy to use correctly.
22-51: LGTM: Robust type flag parsing with proper validation.The case statement correctly maps task types to labels ("idea", "bug", "tech improvement"), ensuring consistency with the list-tasks.sh script. The explicit
--typerequirement and error handling for invalid values are appropriate.
53-63: LGTM: Safe parameter validation.The validation correctly checks the five positional arguments after
shift 2has removed the--typeflag and its value. The use of${n:-}with empty defaults is safe forset -u.
65-84: LGTM: Clean issue creation with structured markdown.The markdown body structure is clear and the variable expansion within the multi-line string will work correctly. The final
gh issue createinvocation properly applies the label.scripts/list-tasks.sh (4)
1-8: LGTM: Clear documentation of dual modes.The updated usage examples clearly distinguish milestone tasks (default) from non-milestone task categories (--ideas, --bugs, --tech).
10-46: LGTM: Well-structured mutual exclusivity enforcement.The
check_exclusivefunction correctly prevents multiple non-milestone flags from being specified simultaneously. Each flag is processed in sequence, and the check ensures only the first non-milestone flag can setNON_MILESTONE_LABEL. The label mappings ("idea", "bug", "tech improvement") are consistent withcreate-non-milestone-task.sh.
48-56: LGTM: Clean separation of non-milestone mode.The early exit after listing non-milestone tasks ensures milestone and non-milestone modes remain mutually exclusive and simplifies the control flow.
58-83: LGTM: Simplified milestone task retrieval.Using
--milestonedirectly (Line 83) is cleaner than the previous label-based filtering approach and makes the intent more explicit.scripts/archive-prd.sh (1)
5-5: LGTM! Stricter error handling improves script robustness.The addition of
-u(fail on undefined variables) and-o pipefail(propagate pipeline failures) strengthens error detection. The script safely handles all variable references and potential empty command substitutions.docs/workflow/task-workflow.md (4)
26-27: Clear command distinction for milestone vs non-milestone tasks.The table effectively communicates the different listing modes and their autonomous nature, aligning well with the PR's goal to separate task types.
67-93: Comprehensive task creation documentation.The dual-template approach (PRD Task vs Non-Milestone Task) with detailed parameter descriptions provides clear guidance for both workflows. The mandatory script usage emphasis aligns with the repository's automation standards.
100-104: Clear workflow guidance for task selection and initiation.The separation of milestone and non-milestone listing commands provides explicit guidance for the "next task" scenario. The instruction to start the task before planning ensures proper sequencing of the workflow steps.
38-60: Excellent task categorization and documentation structure.The clear separation of Milestone vs Non-Milestone tasks with explicit list/create guidance significantly improves workflow clarity. The table mapping task types to labels and commands is particularly helpful, and the referenced scripts (
list-tasks.sh,create-task.sh,create-non-milestone-task.sh) are properly implemented with the documented interfaces.
Add new review-feedback-checks.md convention file that captures patterns learned from external PR reviews (CodeRabbit, human reviewers). Bug-scanner now applies these checks to future PRs, creating a feedback loop where PR feedback becomes automated local checks. Initial checks (RFC-001 through RFC-003) from PR #115: - Documentation-to-code consistency - User-friendly display names - Query filtering completeness Co-Authored-By: Claude Opus 4.5 <[email protected]>



User description
Updated task-workflow.md to document the new list-tasks.sh flags for non-milestone tasks (--ideas, --bugs, --tech). Clarified the distinction between milestone and non-milestone tasks.
PR Type
Enhancement, Documentation
Description
Add non-milestone task listing with --ideas, --bugs, --tech flags
Refactor list-tasks.sh to support both milestone and non-milestone modes
Document task types distinction in workflow guide
Simplify argument parsing and gh command construction
Diagram Walkthrough
File Walkthrough
list-tasks.sh
Refactor to support non-milestone task listing modesscripts/list-tasks.sh
--labelflag with specific--ideas,--bugs,--techflags for non-milestone tasks
only
task-workflow.md
Document task types and non-milestone task listingdocs/workflow/task-workflow.md
distinguishing milestone vs non-milestone tasks
tech improvements) with their labels and list commands
non-milestone tasks
tech improvement tasks
different task types
Summary by CodeRabbit
Documentation
New Features
Chores
✏️ Tip: You can customize this high-level summary in your review settings.