Repository navigation
Closed
Copy link
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.area: securitySecurity-relevant: vulnerability, hardening, or disclosure follow-up.Security-relevant: vulnerability, hardening, or disclosure follow-up.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.
Description
Parent
Refs #5945
Depends on
- feat(guardrails): add the identity-domain guard with domain classification and its kill switch #9743
Outcome
/guardrails:setup offers to write the guard's domain map from /harness-ops:machine-profile apply: each
recorded identity domain's tree becomes its roots and its gh directory its gh_config_dir. Values discovery
does not record (owners, identity markers, az_config_dir, shared exceptions) are asked of the operator or left
empty. The map is written only to the plugin data directory, after the operator confirms.
Decisions
- Epic feat(guardrails): generalize machine-local safety guards into plugin guards #5943 defaults, adopted: the guard lives in guardrails behind its dispatcher and a per-guard kill switch;
bash under the node entry point; port behavior, not the local Python. - The domain map is derived from
/harness-ops:machine-profileand is machine-local: it never sits in a tracked
file, fixture or doc. Placeholders only. - Fail open on any internal error; every exit is 0 with the decision in stdout JSON.
- The guard reads command text: a deterrent, not a sandbox. Declared gaps: computed paths, scripts run by name.
Key interfaces
plugins/guardrails/hooks/block-cross-domain.shandplugins/guardrails/hooks/block-cross-domain.test.sh, theBash|PowerShellrow ofplugins/guardrails/hooks/hooks.json,
plugins/guardrails/README.md,docs/conventions/hook-precision,docs/conventions/hook-budget.
Done when
- A setup test feeds a machine-profile fixture with two domains and finds a map with both domains' roots and
gh_config_dirin a tempCLAUDE_PLUGIN_DATA. - The test asserts no file under the repository checkout changed.
-
grep -n "identity-domains" plugins/guardrails/skills/setup/SKILL.mdprints the step. -
git grep -nE "melodic|kyle|sexton" -- plugins/guardrails/hooks/block-cross-domain.sh plugins/guardrails/hooks/block-cross-domain.test.shprints nothing (placeholders only). -
scripts/run-test-file.sh plugins/guardrails/hooks/run-guards.test.shexits 0, including the guardrails: Bash|PowerShell PreToolUse row takes 30+s on a ~70 KB command; its 60s timeout fails open #4528 long-command ceiling case. - The PR reports the Bash|PowerShell row's added time, measured as
docs/conventions/hook-budgetdescribes, inside that budget. -
scripts/check-changelog-fragments.sh --check-required origin/mainexits 0.
Metadata
Metadata
Assignees
Labels
agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.Fully specified and briefed; eligible for autonomous pickup from the frontier.area: securitySecurity-relevant: vulnerability, hardening, or disclosure follow-up.Security-relevant: vulnerability, hardening, or disclosure follow-up.priority: mediumReal value, no hard deadline; normal backlog flow.Real value, no hard deadline; normal backlog flow.status: readyTriaged, unblocked, and fully specified; eligible to pick up.Triaged, unblocked, and fully specified; eligible to pick up.
Type
Fields
No fields configured for Feature.
Activity
melodic-automation-lanes commentedon Oct 24, 2026
Not admitted to the issue lane yet: blocker #9743 is not closed as completed by a listed human or a merge.