HumanLayer Skills: instruction preservation and reviewable control loops
HumanLayer control-loop architecture: measurement, selection, action and feedback
Map the set point, sensor, controller and actuator, then examine where persistent feedback actually enters the documented workflow.
What you will learn
- Define a measurable target and a bounded increment
- Do not invent separation or feedback that is absent
- Review the loop’s stability, not just one successful action
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
- A useful target must resist improvement by hiding the measurement.
- Feedback affects selection only where it is actually consumed.
- Review capacity is part of the loop’s operating design.
Define a measurable target and a bounded increment
The design skill uses a control-loop vocabulary: a set point defines the desired property, a sensor measures the gap, a controller chooses an increment and an actuator applies a change. Other developers, dependencies and generated files are disturbances because they change the system outside that loop.
For a synthetic example, the target might be eliminating one deprecated call pattern in a chosen directory. The sensor finds occurrences; the controller selects one low-risk target; the actuator proposes a tested change. A falling count alone is insufficient if the change merely suppresses measurement or removes useful behavior.
Do not invent separation or feedback that is absent
The skill permits sensor, controller and actuator responsibilities to be fused when that matches the design. Separate labels do not require three services. What matters is that the measurement and selected action can be explained and reproduced at an appropriate level, with clear boundaries around permitted changes.
The documented memory file is loaded into actuator context after selection. A deterministic controller that never reads that memory will not automatically adopt new selection exclusions merely because the actuator sees them. If standing feedback must change target selection, explicitly wire that feedback into the controller or its policy.
Review the loop’s stability, not just one successful action
The skill proposes an optional regression gate to stop the measured problem worsening while incremental work proceeds. That gate is distinct from the actuator that improves existing code. Decide which changes the gate measures, what baseline it uses and how legitimate exceptions are reviewed.
The workflow’s open-PR limit is another feedback mechanism: scheduled work waits when review is already occupied. Manual dispatch bypasses that template check, so the bound is not universal. We inspected this design and skeleton but ran no long-lived loop or convergence experiment.
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 target, measurement and one reviewable increment.
- 2
Identify fused and separate responsibilities honestly.
- 3
Trace memory into the components that need it.
- 4
Test review-capacity and regression policies separately.
Copy-ready example
{
"syntheticLoop": true,
"target": "remove one deprecated call in scoped code",
"sensor": "occurrence report",
"controllerBatch": 1,
"memoryReadByController": false,
"memoryReadByActuator": true,
"convergenceMeasured": false
}Frequently asked questions
Does writing an exclusion in memory automatically change selection?
Not if a separate controller never reads it; feedback must be wired into that decision.
Must every loop have three separate services?
No. The skill explicitly allows fused components when appropriate.
Sources
- HumanLayer Skills / plugins/design-control-loop/skills/design-control-loop/SKILL.mdSource checked 2026-09-14
- HumanLayer Skills / plugins/design-control-loop/skills/design-control-loop/references/workflow-template.ymlSource checked 2026-09-14