Skip to content

brain-allowlist misses /office-hours design docs and /plan-eng-review test plans at project root #1452

@nitzanvolman

Description

@nitzanvolman

Problem

The .brain-allowlist generated by gstack-artifacts-init (current at v1.27.0.0+, see bin/gstack-artifacts-init:224-234) includes patterns for the designs/ and ceo-plans/ subdirectories:

projects/*/designs/*.md
projects/*/designs/*/*.md
projects/*/ceo-plans/*.md
projects/*/ceo-plans/*/*.md

But several skills write their output at the project root, not in those subdirectories:

Skill Actual write path Source
/office-hours Builder/Startup projects/{slug}/{user}-{branch}-design-{datetime}.md office-hours/SKILL.md:1566
/plan-eng-review projects/{slug}/{user}-{branch}-eng-review-test-plan-{datetime}.md plan-eng-review/SKILL.md:1149
/autoplan (test plan) projects/{slug}/{user}-{branch}-test-plan-{datetime}.md autoplan/SKILL.md:1334

Cross-skill readers correctly glob these at the project root:

  • plan-ceo-review/SKILL.md:897ls -t ~/.gstack/projects/$SLUG/*-design-*.md
  • plan-eng-review/SKILL.md:801 — same
  • autoplan/SKILL.md:841,1003 — same

So the files belong at root; the allowlist is the inconsistent piece.

Effect

With artifacts_sync_mode=full, gstack-brain-sync still skips:

  • /office-hours design docs
  • /plan-eng-review test plans
  • /autoplan test plans

CEO plans sync correctly (they live under ceo-plans/), but the input designs they reference do not. This breaks the cross-machine "ceo-plan references the design" chain — pull on machine B, you get the CEO plan but not the underlying design doc.

This has the same shape as #1441 (v1.27.0.0 rename missed the config key in one place): the rename release moved/renamed things but the allowlist was never audited against current skill write paths.

Repro

  1. Run /office-hours Builder mode → produces ~/.gstack/projects/{slug}/*-design-*.md (at root)
  2. gstack-artifacts-init --host github
  3. gstack-config set artifacts_sync_mode full
  4. Run any gstack skill
  5. gstack-brain-sync --status — design doc absent from queue
  6. Inspect the synced repo on GitHub — design doc not pushed

Suggested fix

Add to bin/gstack-artifacts-init allowlist generation (lines 224-234):

projects/*/*-design-*.md
projects/*/*-eng-review-test-plan-*.md
projects/*/*-test-plan-*.md

These patterns are root-anchored and don't conflict with the existing designs/*.md patterns (* in a glob doesn't match path separators).

Alternative (more conservative): canonicalize the write paths in /office-hours and /plan-eng-review to use the designs/ subdirectory. But this would break the cross-skill readers cited above, so the allowlist fix is the lower-risk path.

Workaround

Append the three patterns below the # ---- USER ADDITIONS BELOW ---- marker in ~/.gstack/.brain-allowlist. Survives gstack-artifacts-init re-runs.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions