Skip to content

CI failure - on squad guard for forbidden paths #228

Closed

Description

@diberry

I don't expect to get a CI failure on a squad-itized repo when I haven't done anything to change how squad deals with its own files.

Run actions/github-script@v7
Error: ## 🚫 Forbidden files detected in PR to main

The following files must NOT be merged into `main`.
`.ai-team/` is legacy team state — it belongs on dev branches only.
`.ai-team-templates/` is Squad's internal planning — it belongs on dev branches only.
`.squad/orchestration-log/`, `.squad/log/`, `.squad/decisions/inbox/`, `.squad/sessions/` are noisy runtime state — they belong on dev branches only.
> Note: Other `.squad/` files (charters, history, decisions, skills, templates) ARE allowed on main to enable team knowledge sharing.
`team-docs/` is internal team content — it belongs on dev branches only.
`docs/proposals/` is internal design proposals — it belongs on dev branches only.

### Forbidden files found:

- `.squad/log/2026-03-06T16-31Z-readme-packagejson-update.md`
- `.squad/orchestration-log/2026-03-06T16-31Z-inara.md`
- `.squad/orchestration-log/2026-03-06T16-31Z-kaylee.md`

### How to fix:

```bash
# Remove tracked .ai-team/ files (keeps local copies):
git rm --cached -r .ai-team/

# Remove noisy .squad/ runtime files (keeps local copies):
git rm --cached -r .squad/orchestration-log/ .squad/log/ .squad/decisions/inbox/ .squad/sessions/

# Remove tracked team-docs/ files:
git rm --cached -r team-docs/

# Commit the removal and push:
git commit -m "chore: remove forbidden runtime paths from PR"
git push

> ⚠️ `.squad/` knowledge files (charters, history, decisions.md, skills, templates) flow through main by design.
> Only noisy runtime state (logs, sessions, inbox) is blocked.
> The guard workflow enforces this boundary. `git rm --cached` untracks files from this PR without deleting local copies.

Here is squad's review of the problem:

Issue: PR guard flags .squad/log/ and .squad/orchestration-log/ files

The forbidden-files-guard workflow correctly flagged 3 runtime state files in my PR
to main:

  • .squad/log/2026-03-06T16-31Z-readme-packagejson-update.md
  • .squad/orchestration-log/2026-03-06T16-31Z-inara.md
  • .squad/orchestration-log/2026-03-06T16-31Z-kaylee.md

Root cause: Scribe committed these files to the feature branch during normal session
work. When the PR targeted main, the guard caught them as forbidden runtime state
(which is correct behavior — the guard is working as designed).

Fix applied:

git rm --cached -r .squad/orchestration-log/ .squad/log/
git commit -m "chore: remove forbidden runtime paths from PR"
git push

git rm --cached untracks the files from the branch without deleting local copies. The
guard passed after this push.

Suggestion: Scribe could be taught to skip git add on paths that match the guard's
forbidden list (orchestration-log/, log/, decisions/inbox/, sessions/), or those
paths could be added to .gitignore on the main-targeting branch. This would prevent
the guard from firing in the first place rather than requiring a cleanup commit.

Image

Activity

  1. added 2 commits that reference this issue on Mar 7, 2026
  2. bradygaster commented on Mar 7, 2026

    @bradygaster
    Collaborator

    ✅ Fixed by PR #232 (merged commit 86598f4) — squad guard no longer blocks runtime state.

    Closed as part of v0.8.21 release wave cleanup.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions