Operant Studio
OPER-118

Port fabricated-evidence tripwire to portico (child of KNUCK-A045)

Suggested
Justin Cooke

Body

---
feature_id: FEAT-studio-dependency-map-policy
labels:
  - governance
  - portico
  - tripwire
---

## Context

Parent tracker: KNUCK-A045.

Port the fabricated-evidence tripwire (studio KNUCK-A028/A029/A030) to portico. Files to copy from operant-health/operant-studio at HEAD as of 2026.09.08:

- .github/workflows/no-scaffolding-stub.yml (2880 bytes) -- job name is Reject fabricated verification evidence
- scripts/check-scaffolding-stub.ts (5216 bytes) -- SUT
- scripts/scaffolding-stub-patterns.json (1882 bytes) -- pattern source of truth
- scripts/__tests__/check-scaffolding-stub.test.ts (3651 bytes) -- unit tests
- scripts/__fixtures__/scaffolding-stub-tripwire/{pos,neg}/ -- positive/negative fixtures

On portico, verify:

1. pnpm tsx works with existing package.json + turborepo layout (portico already uses tsx per its ci.yml).
2. The workflow paths do not need repo-specific tweaks (the tripwire script uses process.cwd() and scans changed files relative to repo root, so should be portable).
3. Fixtures under scripts/__fixtures__/scaffolding-stub-tripwire/pos/ do not accidentally hit any portico .gitignore rule.

## Acceptance Criteria

- PR on portico that copies the six files + fixtures, no other changes
- The workflow file lands and runs green on the PR itself (i.e., the tripwire does not falsely fire on the port PR)
- The self-test job runs green (scripts/__tests__/check-scaffolding-stub.test.ts)
- Follow-up separate PR (KNUCK-A045d) adds the context to portico required-status-checks list
- no-ticket label applied to the port PR since portico trailer check does not accept KNUCK yet

## Provenance

Inventory taken from local studio checkout at /home/user/workspace/operant-studio-work on 2026.09.08.

Attachments

Loading attachments…

Comments

Loading comments…