Skip to content

fix: prevent false task completion cascade (t163)#622

Merged
marcusquinn merged 7 commits intomainfrom
feature/t163
Feb 8, 2026
Merged

fix: prevent false task completion cascade (t163)#622
marcusquinn merged 7 commits intomainfrom
feature/t163

Conversation

@marcusquinn
Copy link
Copy Markdown
Owner

@marcusquinn marcusquinn commented Feb 8, 2026

Summary

Adds 4 layers of protection against false task completions that cascade into auto-closed GitHub issues:

  1. AGENTS.md rules (t163.1): Documents that tasks must NEVER be marked [x] without a merged PR containing real deliverables
  2. issue-sync guard (t163.2): cmd_close() now requires a merged PR or verified:YYYY-MM-DD field before closing issues. --force flag available for override
  3. pre-commit warning (t163.3): Warns when TODO.md tasks transition [ ] -> [x] without evidence of a merged PR
  4. supervisor verify (t163.4): verify_task_deliverables() checks PR is merged with substantive file changes before update_todo_on_complete() marks [x]

Root Cause

The supervisor marked tasks "deployed" in its DB after running the post-PR lifecycle, then update_todo_on_complete() blindly marked [x] in TODO.md. The issue-sync GitHub Action then auto-closed 38 issues. Many of those tasks had no_pr or task_only status — meaning no real work was done.

Changes

File Change
.agents/AGENTS.md Task completion rules in Planning & Tasks section
.agents/scripts/issue-sync-helper.sh task_has_completion_evidence() + guard in cmd_close() + --force flag
.agents/scripts/pre-commit-hook.sh validate_todo_completions() check for [ ] -> [x] transitions
.agents/scripts/supervisor-helper.sh verify_task_deliverables() + guard in update_todo_on_complete()

Testing

  • All 3 modified shell scripts pass shellcheck -S error with zero violations
  • All 3 pass bash -n syntax check
  • Diagnostic subtasks (*-diag-*) are exempted from verification (they fix process, not deliverables)

Closes #618

Summary by CodeRabbit

  • Bug Fixes

    • Tasks are no longer marked complete without merged PRs or verified dates; auto-closing of issues respects this and reports skipped counts.
  • New Features

    • Added a force option to bypass completion validation when necessary.
    • Commit-time checks now warn about TODO items marked complete without evidence.
    • Delivery verification guards automatic task completion to ensure merged PRs include substantive changes.
  • Chores

    • Several tasks were moved to completed with timestamps and notes.

Add 4 guards to prevent tasks being marked [x] without real deliverables:

1. AGENTS.md: Task completion rules - NEVER mark [x] without merged PR
2. issue-sync-helper.sh: cmd_close() requires merged PR or verified: field
   before closing GitHub issues (--force flag for override)
3. pre-commit-hook.sh: Warns when TODO.md tasks go [ ] -> [x] without
   evidence of a merged PR or verified: field
4. supervisor-helper.sh: verify_task_deliverables() checks PR is merged
   with substantive file changes before update_todo_on_complete() marks [x]

Root cause: supervisor marked tasks 'deployed' in DB, then
update_todo_on_complete() blindly marked [x] in TODO.md, which triggered
issue-sync GHA to auto-close 38 GitHub issues without real work done.
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @marcusquinn, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces a robust, multi-layered defense system to prevent the erroneous automatic closure of GitHub issues due to prematurely marked tasks in TODO.md. It addresses a root cause where tasks were marked complete without actual deliverables, leading to a cascade of false issue closures. The changes ensure that task completions are rigorously verified, either through merged pull requests with substantive code changes or explicit human verification, thereby improving the reliability of task tracking and issue management.

Highlights

  • Documentation of Task Completion Rules: New critical rules have been added to AGENTS.md to prevent false task completions, emphasizing that tasks must only be marked complete with a merged PR containing real deliverables or a verified:YYYY-MM-DD field.
  • Issue Sync Guard: The issue-sync-helper.sh script now includes a task_has_completion_evidence() function. The cmd_close() function uses this guard to require a merged PR or a verified:YYYY-MM-DD field before automatically closing GitHub issues, with a --force flag available for manual override.
  • Pre-commit Warning for Task Completion: A new validate_todo_completions() function in pre-commit-hook.sh warns developers if they attempt to mark a task [ ] to [x] in TODO.md without evidence of a merged PR or a verified:YYYY-MM-DD field. This is a warning only and does not block the commit.
  • Supervisor Deliverable Verification: The supervisor-helper.sh now features verify_task_deliverables(), which checks if a task's associated PR is merged and contains substantive file changes (excluding planning or workflow files) before update_todo_on_complete() marks the task [x] in TODO.md. Diagnostic tasks are exempted from this verification.
Changelog
  • .agents/AGENTS.md
    • Added a new section 'Task completion rules' outlining critical guidelines for marking tasks as complete, emphasizing the need for merged PRs with deliverables or explicit verification.
  • .agents/scripts/issue-sync-helper.sh
    • Implemented task_has_completion_evidence() function to check for verified:YYYY-MM-DD fields, merged PR references in task notes, or merged PRs with the task ID in their title.
    • Integrated task_has_completion_evidence() into cmd_close() to act as a guard, preventing issues from being closed without proper completion evidence.
    • Added a --force command-line option to cmd_close() to allow bypassing the completion evidence check.
    • Updated the output message of cmd_close() to report both closed and skipped issues.
  • .agents/scripts/pre-commit-hook.sh
    • Introduced validate_todo_completions() function to detect tasks transitioning from [ ] to [x] in TODO.md during a commit.
    • Added logic within validate_todo_completions() to warn if newly completed tasks lack a verified:YYYY-MM-DD field or a merged PR.
    • Ensured validate_todo_completions() runs as part of the main pre-commit hook execution.
  • .agents/scripts/supervisor-helper.sh
    • Created verify_task_deliverables() function to validate that a task's associated PR is merged and contains substantive file changes (excluding planning/workflow files).
    • Integrated verify_task_deliverables() into update_todo_on_complete() to prevent tasks from being marked [x] in TODO.md if deliverable verification fails.
    • Added an exemption for diagnostic subtasks from the deliverable verification process.
  • TODO.md
    • Updated tasks t013, t016, t017, and t031 from [ ] to [x] and added completed:YYYY-MM-DD fields.
Activity
  • The pull request description details the problem (false task completion cascade) and the proposed solutions, including specific file changes and testing notes. No human comments, reviews, or other activities are mentioned in the provided context.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Feb 8, 2026

Warning

Rate limit exceeded

@marcusquinn has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 11 minutes and 0 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

Walkthrough

Adds multi-layer verification for marking tasks complete: documents rules in AGENTS.md, validates TODO.md [x] transitions in the pre-commit hook, prevents issue-closing when completion evidence is missing (unless forced), and requires supervisor verification of PR deliverables before updating TODO.md completions.

Changes

Cohort / File(s) Summary
Planning & Rules
​.agents/AGENTS.md
Adds "Task completion rules" requiring merged PRs with substantive deliverables or a verified date before marking tasks complete; notes auto-close action behavior and false-completion risks.
Issue sync / CLI guard
​.agents/scripts/issue-sync-helper.sh
Adds FORCE_CLOSE flag, task_has_completion_evidence() check, pre-close evidence guard, skipped-count tracking, --force CLI option, and updated help/logging.
Pre-commit validation
​.agents/scripts/pre-commit-hook.sh
Adds validate_todo_completions() to detect [ ]→[x] transitions and warn when no verified date or merged PR evidence is present; invoked unconditionally at start of hook.
Supervisor verification
​.agents/scripts/supervisor-helper.sh
Adds verify_task_deliverables(task_id, pr_url, repo) to ensure PR is merged and includes substantive file changes (excluding TODO/workflow files); integrated into update_todo_on_complete to block marking tasks complete when verification fails.
Task state updates
TODO.md
Updates several tasks (t013, t016, t017, t031) to completed state with timestamps and notes; these content changes are the visible task status updates.

Sequence Diagram(s)

sequenceDiagram
    actor Developer as Developer
    participant GitHook as Pre-commit Hook\n(validate_todo_completions)
    participant TODO as TODO.md
    participant IssueSync as Issue Sync\n(issue-sync-helper.sh)
    participant Supervisor as Supervisor\n(supervisor-helper.sh)
    participant GH as GitHub API

    Developer->>GitHook: git commit (marks task [x])
    GitHook->>TODO: Inspect staged TODO.md diffs
    GitHook->>GH: Search for merged PR or verified date
    alt Evidence found
        GH-->>GitHook: PR merged / verified ✓
        GitHook-->>Developer: Validation passed
    else No evidence
        GitHook-->>Developer: ⚠️ Warning: missing verified: or merged PR
    end

    Developer->>IssueSync: run issue-sync (cmd_close)
    IssueSync->>TODO: Read task completion states
    IssueSync->>IssueSync: task_has_completion_evidence()
    alt Evidence verified
        IssueSync->>GH: Close associated issue
        GH-->>IssueSync: Issue closed ✓
        IssueSync-->>Developer: Close complete: X closed
    else No evidence
        IssueSync-->>Developer: ⚠️ Skipped (no evidence) — use --force to override
    end

    Note over Supervisor,GH: After PR merge
    Supervisor->>GH: gh pr view / gh pr view --json files
    alt PR merged & substantive changes
        GH-->>Supervisor: PR merged, files changed ✓
        Supervisor->>TODO: update_todo_on_complete (mark [x])
        Supervisor-->>Developer: Deliverable verified
    else Missing substantive changes
        GH-->>Supervisor: Only TODO/workflows or not merged ✗
        Supervisor-->>Developer: ⚠️ Manual verification needed
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

Poem

🛡️ Tasks now march with proof in hand,
No ghostly checks will close the land,
Hooks and supervisors stand in line,
PRs and dates must both align.
Commit, verify — then mark it fine.

🚥 Pre-merge checks | ✅ 4 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 72.73% 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 'fix: prevent false task completion cascade (t163)' directly and accurately describes the main objective of the PR—implementing multiple safeguards to prevent false task completion and cascading auto-closures.
Linked Issues check ✅ Passed All four subtasks from issue #618 are fully addressed: t163.1 adds completion rules to AGENTS.md, t163.2 guards issue-sync-helper.sh with merged PR verification, t163.3 adds pre-commit validation, and t163.4 implements supervisor deliverable verification.
Out of Scope Changes check ✅ Passed All changes are directly scoped to the four subtasks. AGENTS.md documents the rules, three shell scripts implement the four protective layers, and TODO.md updates reflect completed related tasks without introducing unrelated modifications.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/t163

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 and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 8, 2026

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 36 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Sun Feb 8 14:41:54 UTC 2026: Code review monitoring started
Sun Feb 8 14:41:54 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 36

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 36
  • VULNERABILITIES: 0

Generated on: Sun Feb 8 14:41:57 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces several layers of protection to prevent tasks from being marked as complete without sufficient evidence, which was causing a cascade of incorrect issue closures. The changes include new documentation rules, guards in the issue-sync and supervisor scripts, and a pre-commit hook to warn developers.

My review focuses on improving the robustness and consistency of these new guards. I've identified a potential bug in how task notes are parsed, an inconsistency in the evidence-checking logic between two scripts, and a minor code clarity issue with an unused parameter. The proposed suggestions aim to make these new checks more reliable.

task_with_notes="$task_line"
local notes_line
notes_line=$(grep -A1 "^- \[x\] ${task_id} " "$todo_file" | tail -1 || echo "")
if [[ "$notes_line" =~ ^[[:space:]]+- ]]; then
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

high

The regex ^[[:space:]]+- is too broad and can incorrectly match a subtask as a note line. This could lead to incorrect validation if a subtask's description contains words like "merged". The logic should be more specific to avoid matching subtasks.

Additionally, this logic only checks the single line following the task. If evidence for completion exists on a second or later line of notes, it will be missed. A more robust solution would be to parse all note lines for a given task.

Suggested change
if [[ "$notes_line" =~ ^[[:space:]]+- ]]; then
if [[ "$notes_line" =~ ^[[:space:]]+- && ! "$notes_line" =~ " t[0-9]+\." ]]; then

if echo "$line" | grep -qE 'verified:[0-9]{4}-[0-9]{2}-[0-9]{2}'; then
has_evidence=true
fi

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The evidence checking logic here is inconsistent with the task_has_completion_evidence function in issue-sync-helper.sh. This function is missing the check for a merged PR reference in the task line itself (e.g., PR #123 merged).

This could lead to false warnings from the pre-commit hook if the only evidence is text in the task line. To maintain consistency, the check should be added here as well.

Suggested change
if [[ "$has_evidence" == "false" ]] && echo "$line" | grep -qiE 'PR #[0-9]+ merged|PR.*merged'; then
has_evidence=true
fi

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.agents/scripts/supervisor-helper.sh:
- Around line 5261-5266: The substantive-file filtering currently uses grep -vE
with pattern '^(TODO\.md|todo/|\.github/workflows/)$' which only matches exact
names and misses nested paths; update the regex used when setting
substantive_files to exclude any file paths that begin with those
planning/workflow prefixes (e.g., match TODO.md exactly or any path starting
with todo/ or .github/workflows/), so modify the pattern in the
substantive_files assignment (the grep -vE call that reads from changed_files)
to anchor the start and allow prefixes rather than requiring the entire path to
match.

In `@TODO.md`:
- Around line 310-317: The entries for tasks t013, t016, t017 (and t031) in
TODO.md have completed: timestamps but lack the verified: field, which will
trigger warnings from the validate_todo_completions() hook; update each task
block (t013, t016, t017, t031) to include a verified: YYYY-MM-DD (or appropriate
verifier signature) line or modify the validate_todo_completions() logic to
accept notes-as-evidence (e.g., allowlist these IDs) — locate the task lines in
TODO.md and add the verified field for consistency or change
validate_todo_completions() to treat Notes containing deliverables as satisfied.
🧹 Nitpick comments (5)
.agents/AGENTS.md (1)

107-113: Consider moving detailed bullets to a subdoc if the root instruction budget is exceeded.

These additions are important, but root AGENTS.md is constrained to ~50–100 instructions with >80% task relevance; if this pushes the budget, prefer a short summary here with a pointer to a subdoc for full detail.
As per coding guidelines: “Organize agent documentation with instructions budget of ~50-100 max in root AGENTS.md, using progressive disclosure with pointers to subagents” and “Keep every instruction in root AGENTS.md relevant to >80% of tasks.”

.agents/scripts/pre-commit-hook.sh (2)

164-226: violations counter is dead code — never incremented, always returns 0.

violations is initialized at line 167 but never modified. Warnings go to warn_count instead. Since this is intentionally warning-only (line 222), the return $violations on line 225 is misleading. Either remove violations or just return 0 explicitly.

♻️ Simplify return
-    local violations=0
-
     # Only check if TODO.md is staged
...
-    return $violations
+    return 0

176-182: Only top-level task completions are detected; subtask [ ] → [x] transitions are missed.

The pattern ^\+- \[x\] t[0-9]+ requires no leading whitespace, so indented subtasks like - [x] t163.1 in the diff won't match. If subtask completion validation is desired, broaden the regex:

-    newly_completed=$(git diff --cached -U0 TODO.md | grep -E '^\+- \[x\] t[0-9]+' | sed 's/^\+//' || true)
+    newly_completed=$(git diff --cached -U0 TODO.md | grep -E '^\+\s*- \[x\] t[0-9]+' | sed 's/^\+//' || true)

If this is intentional (subtasks inherit evidence from parent), a brief comment would help future readers.

.agents/scripts/issue-sync-helper.sh (2)

1037-1055: Notes extraction only captures one line after the task (grep -A1).

Tasks can have multiple indented lines (subtasks, multiple Notes). If "PR #NNN merged" appears on a deeper Notes line, it won't be captured. Consider using extract_task_block (already defined in this script) for a more complete check:

-            local task_with_notes
-            task_with_notes="$task_line"
-            local notes_line
-            notes_line=$(grep -A1 "^- \[x\] ${task_id} " "$todo_file" | tail -1 || echo "")
-            if [[ "$notes_line" =~ ^[[:space:]]+- ]]; then
-                task_with_notes="$task_line $notes_line"
-            fi
+            local task_with_notes
+            task_with_notes=$(extract_task_block "$task_id" "$todo_file")

This would search the entire task block (including all Notes and subtask lines) for evidence, making the check more robust. The function already exists at line 153.


1275-1278: FORCE_CLOSE variable not initialized with other config vars at the top of the file.

VERBOSE, DRY_RUN, and REPO_SLUG are initialized in the Configuration section (lines 36-38). FORCE_CLOSE should follow the same pattern for consistency and to allow env-var override without --force:

 VERBOSE="${VERBOSE:-false}"
 DRY_RUN="${DRY_RUN:-false}"
 REPO_SLUG=""
+FORCE_CLOSE="${FORCE_CLOSE:-false}"

This also makes local force="${FORCE_CLOSE:-false}" on line 1002 redundant — it could just use $FORCE_CLOSE directly.

Comment on lines +5261 to +5266
# Check PR has substantive file changes (not just TODO.md or planning files)
local changed_files
changed_files=$(gh pr view "$pr_number" --repo "$repo_slug" --json files --jq '.files[].path' 2>/dev/null || echo "")
local substantive_files
substantive_files=$(echo "$changed_files" | grep -vE '^(TODO\.md|todo/|\.github/workflows/)$' || true)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Fix substantive-file filtering — current regex misses nested paths.

grep -vE '^(TODO\.md|todo/|\.github/workflows/)$' only matches the exact directory names, so files like .github/workflows/ci.yml or todo/notes.md are treated as substantive. That can falsely validate a task with only planning/workflow changes.

🛠️ Suggested fix
-    substantive_files=$(echo "$changed_files" | grep -vE '^(TODO\.md|todo/|\.github/workflows/)$' || true)
+    substantive_files=$(echo "$changed_files" | grep -vE '^(TODO\.md|todo/|\.github/workflows/)' || true)
🤖 Prompt for AI Agents
In @.agents/scripts/supervisor-helper.sh around lines 5261 - 5266, The
substantive-file filtering currently uses grep -vE with pattern
'^(TODO\.md|todo/|\.github/workflows/)$' which only matches exact names and
misses nested paths; update the regex used when setting substantive_files to
exclude any file paths that begin with those planning/workflow prefixes (e.g.,
match TODO.md exactly or any path starting with todo/ or .github/workflows/), so
modify the pattern in the substantive_files assignment (the grep -vE call that
reads from changed_files) to anchor the start and allow prefixes rather than
requiring the entire path to match.

Comment on lines +310 to +317
- [x] t013 Image SEO Enhancement with AI Vision #plan → [todo/PLANS.md#image-seo-enhancement-with-ai-vision] ~45m (ai:25m test:10m read:10m) ref:GH#507 logged:2025-12-21 completed:2026-02-08
- Notes: Created 3 subagents: seo/moondream.md (Moondream 3 vision API - caption, query, detect, point, segment with SEO-specific prompts), seo/image-seo.md (orchestrator for alt text, filename, tag generation with WCAG guidelines and WordPress integration), seo/upscale.md (Real-ESRGAN local, Replicate cloud, Cloudflare CDN, Sharp format conversion). Updated seo.md with subagent references and Image SEO workflow section.
- [x] t014 Document RapidFuzz library for fuzzy string matching #tools #context ~5m (ai:4m read:1m) logged:2025-12-21 completed:2026-02-07
- Notes: tools/context/rapidfuzz.md created (122 lines). Covers core functions, process module, distance functions, performance tips, and aidevops integration patterns.
- [x] t015 Add MinerU subagent as alternative to Pandoc for PDF conversion #tools #conversion ~15m actual:15m (ai:10m read:5m) logged:2025-12-21 completed:2026-02-06
- [ ] t016 Uncloud Integration for aidevops #plan → [todo/PLANS.md#uncloud-integration-for-aidevops] ~45m (ai:25m test:10m read:10m) ref:GH#508 logged:2025-12-21
- [x] t016 Uncloud Integration for aidevops #plan → [todo/PLANS.md#uncloud-integration-for-aidevops] ~45m (ai:25m test:10m read:10m) ref:GH#508 logged:2025-12-21 completed:2026-02-08
- Notes: Created uncloud.md subagent (deployment provider guide with Quick Reference, CLI examples, Compose format, architecture diagram), uncloud-helper.sh (CLI wrapper with 20 commands, zero ShellCheck violations), uncloud-config.json.txt (cluster config template). Updated subagent-index.toon. Uncloud v0.16.0, 4.6k stars, Apache-2.0, active development.
- [ ] t017 SEO Machine Integration for aidevops #plan → [todo/PLANS.md#seo-machine-integration-for-aidevops] ~1.5h (ai:45m test:30m read:15m) ref:GH#509 logged:2025-12-21
- [x] t017 SEO Machine Integration for aidevops #plan → [todo/PLANS.md#seo-machine-integration-for-aidevops] ~1.5h (ai:45m test:30m read:15m) ref:GH#509 logged:2025-12-21 completed:2026-02-08
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Newly completed tasks (t013, t016, t017, t031) have completed: timestamps but no verified: field.

These will trigger warnings from the new validate_todo_completions() hook. Since the hook is warning-only and these tasks have Notes with deliverable evidence, this is low risk — but worth noting for consistency with the new rules.

🤖 Prompt for AI Agents
In `@TODO.md` around lines 310 - 317, The entries for tasks t013, t016, t017 (and
t031) in TODO.md have completed: timestamps but lack the verified: field, which
will trigger warnings from the validate_todo_completions() hook; update each
task block (t013, t016, t017, t031) to include a verified: YYYY-MM-DD (or
appropriate verifier signature) line or modify the validate_todo_completions()
logic to accept notes-as-evidence (e.g., allowlist these IDs) — locate the task
lines in TODO.md and add the verified field for consistency or change
validate_todo_completions() to treat Notes containing deliverables as satisfied.

…tion

- supervisor: fix grep regex so nested paths (todo/notes.md) are excluded
- pre-commit: remove dead violations var, add PR merged text check, clarify subtask inheritance
- issue-sync: init FORCE_CLOSE config var, use extract_task_block for notes, remove dead local var
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 8, 2026

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 36 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Sun Feb 8 14:49:49 UTC 2026: Code review monitoring started
Sun Feb 8 14:49:49 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 36

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 36
  • VULNERABILITIES: 0

Generated on: Sun Feb 8 14:49:52 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In @.agents/scripts/supervisor-helper.sh:
- Around line 5221-5276: Summary: gh CLI errors are being suppressed in
verify_task_deliverables, hiding auth/API failures and causing misleading "not
merged" or "no substantive files" results; surface and log these errors and fail
fast. Update the verify_task_deliverables function to stop discarding stderr on
gh invocations (the gh pr view calls used to fetch state and files), instead
append stderr to SUPERVISOR_LOG (use 2>>"$SUPERVISOR_LOG"), and check each gh
command's exit status: if gh returns non-zero, log an error via log_error (or
log_warn) with context (task_id, pr_number) and return 1 immediately; mirror the
pre-flight gh availability/auth pattern used elsewhere in the script. Ensure
both the state fetch and files fetch follow this pattern so authentication/API
failures are recorded and cause the function to fail rather than silently
treating the PR as unmerged or empty.

- Add pre-flight gh availability and auth checks
- Log gh errors to SUPERVISOR_LOG instead of suppressing with 2>/dev/null
- Fail fast on API errors instead of silent fallthrough
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Feb 8, 2026

🔍 Code Quality Report

�[0;35m[MONITOR]�[0m Code Review Monitoring Report

�[0;34m[INFO]�[0m Latest Quality Status:
SonarCloud: 0 bugs, 0 vulnerabilities, 36 code smells

�[0;34m[INFO]�[0m Recent monitoring activity:
Sun Feb 8 15:00:52 UTC 2026: Code review monitoring started
Sun Feb 8 15:00:52 UTC 2026: SonarCloud - Bugs: 0, Vulnerabilities: 0, Code Smells: 36

📈 Current Quality Metrics

  • BUGS: 0
  • CODE SMELLS: 36
  • VULNERABILITIES: 0

Generated on: Sun Feb 8 15:00:55 UTC 2026


Generated by AI DevOps Framework Code Review Monitoring

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Feb 8, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

code-reviews-actioned All review feedback has been actioned

Projects

None yet

Development

Successfully merging this pull request may close these issues.

t163: Prevent false task completion cascade (AGENTS.md rule + issue-sync guard + supervisor verify)

1 participant