Skip to content

Bug: drm-copilot-upstream-template-and-payload-defects #932

Description

@drmoisan
  • Work Mode: full-bug

Summary

Upstream tracker. Every defect below lives in push-down-owned files or MCP tools from the drm-copilot repository. A fix made in TaskMaster would be reverted by the next push-down, so each must be fixed in drm-copilot and arrive here through a push-down. This issue follows the precedent of #691 and closes once all items arrive and are verified here.

  1. Bug: potential-to-issue-drops-unmatched-sections #887: potential_to_issue silently drops unmatched sections.
    • extensions/drm-copilot/src/lib/potential-to-issue/content.ts:39-47: BUG_SECTION_HEADINGS lists only seven headings.
    • buildBugBody (lines 212-224) emits only those seven, so Suspected Cause / Notes, Proposed Fix / Validation Ideas and Next Step are dropped with no signal in the receipt.
    • The Python mirror has the same gap: scripts/dev_tools/potential_to_issue_content.py:15,94.
    • The last change to that module was 279d4f7c on 2026-08-25, so the defect is live in v1.1.12.
  2. Bug: Bug: Two coexisting acceptance-criteria numbering schemes in one spec cause miscounts #899: acceptance-criteria authoring conventions are inconsistent.
    • The promotion scaffold injects checkbox lines outside the acceptance-criteria section: 52 of 86 active specs are affected.
    • The feature template ships ## Definition of Done instead of ## Acceptance Criteria: 5 specs are affected.
    • Three label conventions are live at once: (#NNN), numbered, and AC<n>.
    • .claude/skills/acceptance-criteria-tracking/SKILL.md:43-50 permits several headings.
    • The only authoring-time gate is .claude/hooks/validate-prd-feature-output.ps1:66.
  3. Bug: ac22-write-set-criterion-unsatisfiable #885: the "Write Set" acceptance criterion cannot be satisfied.
    • .claude/agent-memory/** is tracked and written by every executing agent.
    • No spec's Write Set can enumerate those files in advance, so the criterion fails on every agent-executed delivery.
    • The spec-authoring and planning prompts (resolve_atomic_plan_prompt, the prd-feature template) need a standing .claude/agent-memory/** carve-out.
  4. Repository-wide host-identifier leakage: absolute user-profile paths, account and host names in tracked files #602 .claude portion: host-identifier leakage in push-down-owned files.
    • About 8 .claude/** files contain the developer account name or an absolute user-profile path, including .claude/settings.json:75 and several .claude/agent-memory/** files and .claude/skills/cleanup-merged-worktrees/SKILL.md.
    • Replace them with <repo-root>, <user-profile> or environment references upstream.
  5. Coverage threshold contradiction remains: CLAUDE.md/csharp.md say 80%, general-unit-test.md/quality-tiers.md say 85%/75%, and two live gates disagree #563 residual: coverage floors differ from the maintainer decision.
  6. Bug: quickfiler-coverage-filesize-evidence-debt #727 sub-finding 5 residual: evidence timestamps.
    • Evidence artifacts carry Timestamp: fields that disagree with their own build banners and commit dates, so inter-gate ordering cannot be established from them.
    • The owning guidance is the push-down-owned evidence-and-timestamp-conventions skill.

Environment

  • OS/version: Windows 11 Pro 10.0.26200
  • Python version: not applicable (drm-copilot TypeScript MCP server and its Python mirror, and push-down payload files)
  • Command/flags used: static inspection of drm-copilot main (v1.1.12 tag 2dce111e and later) and TaskMaster main at 177b6d78e (harness 1.1.12)
  • Data source or fixture: files cited above

Steps to Reproduce

See each item. #887 reproduces on any promotion of a fully filled potential-bug entry: diff the issue body against the source.

Expected Behavior

Each item is corrected upstream and pushed down. After the push-down, each is verified in TaskMaster:

  • a re-promotion carries every source section
  • a newly scaffolded spec has checkboxes only inside ## Acceptance Criteria
  • a Write Set criterion passes with agent-memory writes present
  • .claude/** carries no host identifier
  • the review hook's coverage floors match the recorded decision

Actual Behavior

All six are present on TaskMaster main at 177b6d78e with harness 1.1.12.

Logs / Screenshots

  • Attached minimal logs or snippet
  • Snippet: see the verification comments on the consolidated source issues.

Impact / Severity

  • Blocker
  • High
  • Medium
  • Low

Source

From: docs/features/potential/2026-09-28-drm-copilot-upstream-template-and-payload-defects.md

Activity

  1. drmoisan commented on Sep 28, 2026

    @drmoisan
    OwnerAuthor

    The following sections were present in the promoted potential entry (docs/features/potential/promoted/2026-09-28-drm-copilot-upstream-template-and-payload-defects.md) but were dropped by potential_to_issue (defect #887, now consolidated into #932). Reposted verbatim.

    Suspected Cause / Notes

    Each is a template, tool, or payload defect in drm-copilot. None can be fixed durably in this repository, because push-down overwrites the payload paths.

    Proposed Fix / Validation Ideas

    • Run one drm-copilot change (or one drm-copilot parallel run) covering items 1 to 6.
    • Publish the MCP server. TaskMaster's .mcp.json runs npx -y against the published package, so the published version is what TaskMaster sessions run.
    • Push down to TaskMaster.
    • Verify each expected behavior in TaskMaster.

    Next Step

    • Promote to GitHub issue (bug-report template)
    • Execute in drm-copilot

    Consolidates: #885, #887, #899, the .claude portion of #602, the upstream residual of #563, and the timestamp portion of #727 sub-finding 5.

  2. drmoisan commented on Oct 1, 2026

    @drmoisan
    OwnerAuthor

    An additional upstream (drm-copilot push-down) defect was found during #947 (PR #963, Follow-up 5).

    The feature-review gate looks for the C# coverage document at artifacts/csharp/coverage.xml. TaskMaster's coverage runner (scripts/vscode/Invoke-MSTestWithCoverage.ps1) writes under coverage/. Each item therefore has to produce the canonical file by hand before its first feature review.

    .claude/** is push-down-owned, so fix it upstream. Either make the expected path configurable per repository, or have the review accept the runner's output location.

  3. drmoisan commented on Oct 2, 2026

    @drmoisan
    OwnerAuthor

    Three more upstream (drm-copilot push-down) defects, found during #956 execution in parallel run bugs-2026-09-28:

    1. enforce-completion-consistency.ps1 reads the wrong checkpoint. It blocked an item child's checkpoint edits. It appears to read the session-root artifacts/orchestration/orchestrator-state.json rather than the item worktree's own checkpoint. In parallel and epic topologies these differ. Same class as the model-routing hook issue that was fixed locally at 4389d95b.
    2. No blocked_reason value for an acceptance-criterion measurement. The orchestrator checkpoint schema has no value for a halt caused by an AC measurement failing, as opposed to a toolchain failure or a policy conflict.
    3. Planner template gap for unreachable closing braces. When a plan removes [ExcludeFromCodeCoverage] from code containing throw;, the closing brace after the rethrow becomes an uncovered, unreachable line. Changed-line coverage criteria then fail spuriously. The atomic-planner guidance should tell planners to enumerate such lines as named exemptions at authoring time.
  4. drmoisan commented on Oct 2, 2026

    @drmoisan
    OwnerAuthor

    Two more planner-template defects (upstream push-down), found during #948 (PR #969):

    1. Hit-count comparisons are unsatisfiable. Plans must not compare coverage hit counts between lines. dotnet-coverage's Cobertura output records each line hit as binary (0 or 1), so a "line A hit more than line B" check can never pass. Bug: engine-toggle-permanent-config-fault-logs-every-poll #948's P3-T10 had to be replaced at execution time with a check that both branch outcomes are covered.
    2. Evidence timestamps are not read from the clock. Plan-authored evidence timestamps are composed rather than read. The atomic-planner and executor templates should require Get-Date or date -u output for every recorded timestamp. A related correction was made in Bug: tracked-csproj-bak-files-carry-stale-project-content #951's clearance artifact.
  5. drmoisan commented on Oct 2, 2026

    @drmoisan
    OwnerAuthor

    More planner and executor template defects (upstream push-down), found during #950 and #952:

    1. Diff checks trip a hook. Plan diff-check commands containing the substring "remove" trip the worktree-removal hook, and some pwsh one-liners fail to parse. Bug: dependabot-repair-runbook-and-workflow-comment-wording #952's executor had to rewrite two gate commands. Planners should build such commands in a way the hooks accept, and avoid multi-command pwsh pipes.
    2. Raw Invoke-Pester. Plans name raw Invoke-Pester commands instead of the PoshQC MCP route that this repository's maintainer requires for local PowerShell gates (Bug: dependabot-repair-runbook-and-workflow-comment-wording #952).
    3. The stall-probe rule cannot tell a fast failure from a hang. Bug: quickfiler-tests-depend-on-wall-clock-timing #950's probe saw a deterministic test failure (not a stall) and fell back to the filtered coverage route, so the standard runner script was never exercised. The rule should branch on "hung" versus "failed" separately.
  6. drmoisan commented on Oct 3, 2026

    @drmoisan
    OwnerAuthor

    Added from #967 (maintainer decision 2026-10-03): .claude/rules/quality-tiers.md requires a quality-tiers.yml at the repository root and a tier-classification CI stage. Neither exists in TaskMaster, and the #178 governance sync deliberately kept TaskMaster's own policy and excluded the tier system. Fix upstream in drm-copilot so the push-down omits this rule (or gates it) for TaskMaster. Related: #668.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions