HumanLayer Skills: instruction preservation and reviewable control loops
Choose HumanLayer skills, deterministic checks or manual review by the task
Decide when instruction cleanup, live-call-site type analysis or a recurring agent loop is appropriate, without treating automation as the default.
What you will learn
- Match the mechanism to the uncertainty
- Use live call sites carefully when narrowing types
- Adopt only with a clear acceptance and stop condition
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
- Deterministic checks and agent judgment solve different parts of maintenance.
- Local call sites may not describe an exported library’s entire contract.
- Adoption requires task-specific acceptance and stop conditions.
Match the mechanism to the uncertainty
A linter or type checker is suited to a deterministic rule it can express. An instruction skill is useful when an assistant needs repository-specific judgment. A recurring agent loop is appropriate only when there is a measurable backlog, reviewable increments and ongoing human steering. These mechanisms can complement one another.
Do not create recurring operation for a one-time explanation or a small instruction rewrite. Conversely, a long-lived migration may need a regression gate as well as an agent that reduces existing instances. Define the task’s lifetime and evidence before choosing how much machinery to introduce.
Use live call sites carefully when narrowing types
narrow-react-prop-types asks readers to inspect real consumers, distinguish required props from meaningful omissions and preserve nullability separately from optionality. It also asks tests and stories to adapt to the real contract rather than weakening it for convenient fixtures. That is a source-analysis workflow, not a blanket rule to delete optional props.
For exported libraries, repository search may not reveal every downstream consumer. Confirm the supported public contract and compatibility policy before removing a prop merely because local examples do not use it. Typechecking local consumers is useful evidence, but it cannot prove that unknown external clients will remain compatible.
Adopt only with a clear acceptance and stop condition
For instruction cleanup, acceptance is preservation plus a separate behavioral trial. For type narrowing, require live-consumer evidence and appropriate compatibility checks. For a control loop, require locally runnable components, a reviewed change and an explicit review-capacity bound before increasing cadence.
Choose manual review when the needed evidence is unavailable or the consequences exceed the loop’s approved scope. This series does not rank competing vendors or claim that agents outperform deterministic tools. It provides a way to choose the smallest mechanism that can fully satisfy the task.
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
Identify whether the work is one-time or recurring.
- 2
Separate deterministic rules from judgment.
- 3
Check public consumers before narrowing an API.
- 4
Define acceptance and review capacity before automation.
Copy-ready example
{
"selectionWorksheet": true,
"exportedComponent": true,
"allConsumersKnown": false,
"removeUnusedPropAutomatically": false,
"nextStep": "review public compatibility contract"
}Frequently asked questions
Should all optional props be removed?
No. Meaningful live omissions and supported public contracts must be preserved.
Can local typecheck prove compatibility for all external users?
No. Unknown downstream consumers need separate compatibility consideration.
Sources
- HumanLayer Skills / plugins/narrow-react-prop-types/skills/narrow-react-prop-types/SKILL.mdSource checked 2026-09-14
- HumanLayer Skills / plugins/design-control-loop/skills/design-control-loop/SKILL.mdSource checked 2026-09-14
- HumanLayer Skills / plugins/improve-claude-md/skills/improve-claude-md/SKILL.mdSource checked 2026-09-14