HumanLayer Skills: instruction preservation and reviewable control loops
Build a synthetic admission simulator before scheduling a maintenance agent
Model review capacity, exact iteration commands and missing policy without creating PRs or granting a learning prototype real write access.
What you will learn
- Simulate whether work may start before simulating code changes
- Separate model policy from upstream execution
- Add a readable explanation of every decision
Before you start
- Repository instructions and basic GitHub Actions concepts
- Understanding of review scope and persistent agent context
Design a bounded, inspectable workflow and distinguish template assumptions from tested behavior.
Key takeaways
- Admission policy can be tested without an agent or credentials.
- Stricter teaching rules must not be attributed to the upstream template.
- A simulated allow decision is not real-world authorization.
Simulate whether work may start before simulating code changes
A useful learning extension is a pure admission function over synthetic events. Inputs include event type, open review count, workflow identity, comment role, command and policy availability. Outputs say admit or wait with a reason. This is our proposal, not a new feature claimed to exist in HumanLayer Skills.
Keep the simulation free of GitHub calls, credentials and writes. Its purpose is to make policy decisions inspectable before connecting an actuator. The companion model intentionally uses an exact /iterate command boundary and required policy availability, stricter than simply copying the template’s prefix and empty-memory behavior.
Separate model policy from upstream execution
Test scheduled work with an open PR, a deliberate manual override, unauthorized commenters, a mismatched marker and a missing required policy. Include a command that merely begins with the same letters but is not /iterate followed by whitespace or end of input. Explain which refusals are proposed hardening rather than upstream behavior.
A matching marker in the model is still just routing data. The simulator cannot prove branch trust, validate a token or sandbox an agent. Those need separate integration design and testing. Passing synthetic cases does not authorize enabling a live workflow.
Add a readable explanation of every decision
Show the input facts, selected policy and decision reason in a small table or two-dimensional flow. Leave unknown state visible instead of guessing that a missing observation means no work is open. Keep a human override explicit and logged in any future implementation.
A later integration can obtain real observations, but admission should remain separate from mutation and publication. Start with a read-only report over test events; only then consider an authorized actuator. No recurring workflow or external state change was created by this learning project.
Decision guide
| Criterion | Option A | Option B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Implementation steps
- 1
Define synthetic inputs and explicit policy rules.
- 2
Test queue limits, command boundaries and missing policy.
- 3
Report reasons and unknown observations.
- 4
Keep live mutation outside the first milestone.
Copy-ready example
{
"proposal": true,
"input": "synthetic event",
"exactCommandBoundary": true,
"requirePolicy": true,
"networkAccess": false,
"createPullRequest": false,
"scheduleEnabled": false
}Frequently asked questions
Is the simulator an upstream workflow runner?
No. It is a separate learning model with deliberately stricter admission rules.
Does a passing simulation make a live branch safe?
No. Branch trust, credentials and execution require separate checks.