Skip to content

Run fresh-repository E4 validation for activation label provisioning #1958

Closed

Description

@bradygaster

Parent: #1957

Blocked by: all implementation and contract-test sub-issues under this epic.

Problem

The user-visible activation behavior must be proven against GitHub after the temporary-ID correction. Unit and compiled-workflow tests cannot prove actual safe-output sequencing and label application.

Scope

Run the existing E4 activation scenario in a fresh repository after all corrective implementation has merged or is available on the test ref. Record evidence; do not expand into post-activation implementation testing.

Success criteria

  • The test repository begins without squad or squad:{agent} labels.
  • The tested installation uses the corrected workflow version/ref.
  • Both supported activation paths are exercised, or the E4 record explicitly demonstrates why one scenario proves shared behavior and separately verifies the other path.
  • Missing labels are created automatically.
  • Every activated issue has squad.
  • Each task has exactly the label for its own planned owner.
  • @copilot, multi-owner, and non-roster cases behave as specified.
  • The origin intent issue receives no accidental task/epic owner label.
  • Activation summaries match labels actually present on GitHub.
  • A rerun demonstrates idempotency and produces no duplicate issues or inconsistent bindings.
  • Workflow run URLs, created issue links, assertions, and the final result are recorded in the E4 evidence document.
  • Any failure blocks closure of parent Correct activation label targeting and verify it end to end #1957 and is filed as a focused defect rather than being explained away.

Out of scope

Post-activation implementation and distribution of the separate deterministic checker.

Activity

  1. added
    squadSquad triage inbox — Lead will assign to a member
    type:choreMaintenance, refactoring, cleanup
    next-upPriority queue — next issues to work
    triagedIssue has been triaged
    gh-awGitHub Agentic Workflows integration
    on Aug 31, 2026
  2. bradygaster commented on Sep 1, 2026

    @bradygaster
    CollaboratorAuthor

    E4 fresh-repository validation — run complete, terminal status

    First real issue_comment-triggered execution of the workflow on a genuinely fresh repository. Enlistment → Cast → /squad plan → /squad activate all executed. Consumer repo and run references are recorded in the session handoff for maintainers rather than linked here.

    Four-fix verdict

    Fix Verdict Evidence
    #1959 label creation on fresh repo ✅ PASS Repo began with 0 squad* labels. Ended with squad, squad:backend, squad:tester, squad:docs — 3 created at activation, 1 at cast. All color=ededed, empty description, matching the guide's documented fresh-repo shape.
    #1962 temporary-ID targeting ✅ PASS 5/5 Fast-path #aw_wi{N} form. All five temporary IDs resolved to distinct real issues; the add_labels manifest targeted exactly those five numbers. Verified issue-by-issue: titles and owner routing correct in all five.
    #1961 bounded truncation ⚠️ NOT EXERCISED Plan produced 5 work items against create_issue max:75 / add_labels max:110 (config read from the run log). Truncation was unreachable, so no [aw] … reported incomplete result tracking issue — correctly absent. This fix remains unverified by execution.
    #1963 accepted ≠ applied ❌ FAIL (wording) Activation summary heading reads "Labels applied:" and "Each issue received …". The guide states a summary "must not claim a label was applied, landed, verified, confirmed, or checked." Word scan of the summary: 1× "applied", 1× "received", 4× "accepted".

    On #1963, precisely: the labels genuinely did land in this run, so the sentence is not false in fact. The body does correctly attribute them to accepted add_labels calls. The defect is the heading, and under truncation that heading would assert something the run cannot know — which is the exact case the fix exists to prevent.

    Additional finding: a documented verification surface was not emitted

    The guide states that every phase and full activation artifact includes an Activation bindings: fenced JSON block, describing it as "the most directly checkable surface Squad emits."

    Observed: zero occurrences — not in the origin issue's comments, not in any created issue body, not anywhere in the ~9.9k-line run log. Running the guide's own documented verification command returned nothing.

    Noting candidly: this claim was reviewed and passed during the docs review. The prose was verified as falsifiable; there was no run to falsify it against. Reality falsified it. Either the workflow must emit the block on the fast path, or the guide must scope the claim to the paths that do.

    Other defects observed

    1. Cast is nondeterministic and reports success when it fails. 1 of 2 runs concluded success, produced no PR, and published a confidently wrong root cause. Root cause established from logs: the validator is presented as an inline base64 payload the agent is invited to transcribe, while gh-aw has already materialized the same file on disk beside it. The successful run only succeeded by improvising a file read.
    2. Strict compile emits 4 undocumented concurrency.job-discriminator warnings on a clean install, against a guide that permits exactly one known warning. A literal guide-following user stops here on the happy path.
    3. Cast PR opens as a draft; merge hard-errors until gh pr ready. Undocumented.
    4. .github/aw/logs/.gitignore step is sequenced after the commit block, so following it literally requires a second commit.
    5. Run conclusion is never a truth signal — success was returned for a Cast that produced nothing, for a rejected command, and for a summary that overstates. Observed three separate times.

    What worked

    Enlistment succeeded first try with the approval report matching the documented allowlist exactly. No PAT or secret was required — activation ran on the built-in github.token with an empty secret list, confirming the corrected guide language by execution. Slash-command trigger latency was 2–3s across all five dispatches. Plan quality was genuinely good, and the path-mismatch rejection returned a precise diagnosis plus an explicit "No changes were made."

    Verdict

    cast → plan activate is not ready. The activation mechanism itself is sound — #1959 and #1962 pass on real execution, which is a real result. But the path there is gated by an intermittent Cast failure that reports success, and the two fixes concerned with honest reporting did not hold.

    The four fixes were prose plus tests asserting about prose. Execution shows the two mechanical ones pass and the two epistemic ones do not.

    Follow-up status

    This validation run is terminal. A rerun will use a newly created session and repository after #1978 merges to dev and the required artifacts and docs publish.

  3. bradygaster commented on Sep 2, 2026

    @bradygaster
    CollaboratorAuthor

    E5 fresh-private-consumer validation — terminal blocker

    Timestamp: 2026-09-02T02:37:20Z
    Source dev commit: 58f249b68f39509eef6a62325ed13d3690378d3d
    Published-docs deployment: run 33582557774, success, 44s, same source SHA
    Overall verdict: BLOCKED at the mandatory human-reviewed bootstrap gate. No Squad Cast, plan, or activation command was run, and no product/workflow file was patched.

    Evidence collected before the blocker

    • Created exactly one new private E5 consumer; privacy was verified immediately. Identity and private URLs are intentionally omitted.
    • Seeded a small local-only Python CLI with auditable validation, error-handling, duplicate-state, and corrupt-state defects. No secrets or external services.
    • Actions were enabled. Default workflow token permissions were changed from write to read; Actions-created PRs remained allowed. Actions/Dependabot/Codespaces secret counts were all zero.
    • Installed the four supported @dev workflows, dispatcher first.
    • First-install safe-update report contained only SQUAD_GITHUB_APP_PRIVATE_KEY, SQUAD_GITHUB_TOKEN, and bradygaster/squad/.github/actions/squad-init; no secret was configured. The one-time approval was therefore allowed.
    • Final gh aw compile --strict ran without --approve: 4 succeeded, 1 warning; all four source/lock pairs existed.
    • Exact sole warning: “.github/workflows/squad.md: warning: Both slash_command and bots triggers are configured. If a bot listed in bots: posts a comment that starts with the slash command text (e.g., /command-name), it will trigger the workflow and occupy the concurrency slot, potentially blocking simultaneous manual invocations. To ensure the workflow only runs on explicit user commands, remove the 'bots:' field.”
    • Bootstrap staged set was exactly 17 documented files with no deletions or diagnostic logs. The PR is open, non-draft, and GitHub reports it mergeable. Automated review completed as COMMENTED (no approval) and reported 8 findings (2 high, 6 medium). After 10 bounded minutes there were 0 human APPROVED reviews. Per the published gate, I did not merge it.
    • Current private-consumer API inventory: 0 issues and 0 squad* labels. The required durable pre-activation inventory comment was not due/reached because activation is blocked.

    Run ledger

    No Squad workflow run occurred because the bootstrap is not on the default branch. Platform support runs triggered during repository/bootstrap review:

    Run ID Workflow Conclusion
    33583129018 Dependency Graph success
    33583146923 CodeQL success
    33583185139 GitHub Advanced Security success
    33583191454 Copilot review success

    12-row score matrix

    # Acceptance item Verdict Exact evidence
    1 Fresh label creation BLOCKED Zero-state is 0 squad* labels; activation never ran.
    2 Distinct temp-ID task-to-issue targeting BLOCKED No activation artifacts or issues exist.
    3 Non-empty exact Activation bindings: and exact issue parity BLOCKED No activation artifact exists.
    4 Exact Label operations accepted wording and forbidden-certainty-word absence BLOCKED No relevant activation output exists to scan.
    5 Actual labels and owner routing BLOCKED No activation-created issues exist.
    6 Strict compile with only documented warning PASS 4/4 compiled; exactly 1 warning, quoted above; 4 source/lock pairs present.
    7 Truthful Cast failure when failure emitted BLOCKED No Cast run was permitted before bootstrap merge.
    8 Generic completion-hook neutrality BLOCKED No Cast completion hook was emitted.
    9 Draft PR readiness BLOCKED No Cast PR exists. Bootstrap PR is non-draft/mergeable but lacks human approval; no inference was made about Cast readiness.
    10 .github/aw/logs/.gitignore sequencing PASS Observational/non-blocking: absent after install, created after final compile but before staging/commit, and included in the documented staged surface.
    11 #1961 oversized/truncation UNVERIFIED Not attempted before the core gate. Future test: isolated enterprise-policy plan with >50 generated tasks; activate exactly the first 50, verify first-50 bindings/API parity plus the durable truncation artifact, then verify resume creates only the remainder with no duplicates.
    12 Granular-plan separation BLOCKED Neither baseline nor granular planning began.

    Blockers and follow-ups

    1. Obtain an actual human APPROVED review of the bootstrap PR and disposition the 8 automated findings without patching installed workflow files in place.
    2. Only then merge the reviewed bootstrap, run the capped independent Cast-hardening campaign, and proceed to the main Cast → research/plan → activate path if hardening evidence is acceptable.
    3. Immediately before activation, create the baseline/command issues and post/verify the required machine-readable zero-state inventory on the private planning issue.
    4. Keep Prevent silent truncation of Squad activation label operations #1961 UNVERIFIED until the bounded >50-task scenario above is executed.

    The private consumer remains intact and unarchived for continuation. Retain it until human review and the E5 evidence campaign finish; archive it afterward rather than deleting it. The source Squad worktree was clean before and after (HEAD and origin/dev both 58f249b68f39509eef6a62325ed13d3690378d3d). Next-phase readiness: not ready; human bootstrap approval is required.

  4. bradygaster commented on Sep 2, 2026

    @bradygaster
    CollaboratorAuthor

    E5 bootstrap review follow-up

    • Requested review set: 7 fixed, 1 dismissed. A follow-on security scan added four unique findings: 3 fixed, 1 dismissed; duplicate scan generations accounted for six additional threads. Overall, 10 unique findings were fixed and 2 dismissed, with all 15 automated threads resolved.
    • Remaining: 0 unresolved threads, 0 pending checks, and 0 failed checks (3 successful, 6 skipped).
    • Current posture: the bootstrap PR is open, non-draft, mergeable, and check-clean. It has 0 human approvals, so the mandatory campaign approval gate remains open.

    Exact single human action required: submit one human APPROVED review on the existing private bootstrap PR.

  5. bradygaster commented on Sep 2, 2026

    @bradygaster
    CollaboratorAuthor

    E5 fresh-private-consumer validation — bootstrap PR now human-approval-ready

    Timestamp: 2026-09-02T02:58:00Z (dispositioning work) / verified 2026-09-01 (this pass)

    Resumed only far enough to clear the mandatory human-reviewed bootstrap gate described in the prior update (comment 5503493158). No Squad Cast, plan, or activation command was run. No product/workflow source file was patched — only the private consumer's own bootstrap PR branch received commits.

    Disposition of the 8 automated Copilot review findings

    • 7 fixed — surgical workflow-config corrections (worker comment-target scoping, fork-provenance same-repo gate, dependency/implementation-worker default-branch PR targets, review-relay bot allowlist, checks: read permission for the review workflow).
    • 1 dismissed — a flagged embedded-payload hash mismatch was independently re-derived and verified to match the expected value byte-for-byte; reply recorded the exact verification method inside the existing thread before resolving.
    • Each fix was pushed first, then replied to inside its original inline review thread with a commit-specific explanation, then resolved — no disconnected top-level comments were used.

    Supplementary automated security findings

    • 7 additional advanced-security supply-chain findings (mutable-branch workflow source pinning, plus one prompt-injection-surface finding) were also inspected: 6 fixed by pinning to the already-vetted immutable revision, 1 dismissed with recorded rationale (control-plane artifact is structurally excluded from worker write paths and authenticated by the deterministic validator).

    Current posture (read-only checks, no merge performed)

    • Review threads: 15 total, 0 unresolved.
    • Required checks: passing (rollup success).
    • Re-ran the smallest necessary validation — strict compile only: 4/4 workflows succeeded, same single pre-existing documented non-blocking warning as before (bots/slash_command concurrency note), zero drift between recompiled and committed lock files.
    • PR: non-draft, mergeable, no human review decision recorded yet.

    Exact single human action required

    Submit one human APPROVED review on the private E5 bootstrap PR. No other action is needed — all automated findings are dispositioned, checks are green, and the branch is clean/mergeable.

    The private consumer remains intact and unarchived. Next-phase readiness: ready for human approval; Cast/plan/activation remain untouched pending that approval.

  6. github-actions commented on Sep 10, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  7. github-actions commented on Sep 10, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  8. github-actions commented on Sep 11, 2026

    @github-actions
    Contributor

    🔄 Ralph — Auto-Triage

    Assigned to: Flight
    Reason: No module, routing, or role keyword match — routed to Lead/Architect
    Source: lead-fallback

    Ralph auto-triaged this issue using routing rules.
    To reassign, swap the squad:* label.

  9. bradygaster commented on Sep 11, 2026

    @bradygaster
    CollaboratorAuthor

    Closing as completed following backlog cleanup: the associated fix, validation, or tracking work has been completed.

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

    gh-awGitHub Agentic Workflows integrationnext-upPriority queue — next issues to workpriority:p1This sprintsquadSquad triage inbox — Lead will assign to a memberstatus:backlogBacklog itemtestingtriagedIssue has been triagedtype:choreMaintenance, refactoring, cleanup

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions