test(harness): gate portable role secret and authority drift
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- Avg merge
- 1h 7m
- Merged PRs (30d)
- 969
Description
## Parent
- #436
## Goal
Turn the portable-role security and authority boundaries into CI failures rather than prose-only rules.
## Scope
- Scan tracked role specs and both generated surfaces for credential/token/private-key material and runtime Directory ULIDs.
- Prove credential cache paths stay gitignored and require mode 0600 at runtime.
- Prove only `coord-main` has merge authority and only coordinator kinds can dispatch.
- Prove generated files match the neutral YAML role source.
## Acceptance
- Positive and counterexample fixtures cover every gate.
- A deliberately leaked token-like value, ULID, duplicate merge authority, or generated drift fails the test.
- Gate runs in the standard harness/CI path.
- `./init.sh` passes.
## Dependencies
- #436
- portable surface generator child
- stable role resolver child
- persistent role lifecycle child
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the standard harness/CI path, ./init.sh, and the neutral YAML role source. Inspect tracked role specs, both generated surfaces, and credential cache handling, then use positive and counterexample fixtures to cover each stated boundary. Done means every listed drift or leak fails in CI while valid roles pass and ./init.sh succeeds.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, yaml
- Domain
- ci-cd, security, testing
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100