Creator · humanlayer
Last updated · Sep 6, 2026
narrow React component prop types to match live code paths
Creator · humanlayer
Last updated · Sep 6, 2026
narrow React component prop types to match live code paths
Creator · humanlayer
Last updated · Sep 6, 2026
narrow React component prop types to match live code paths
Creator · humanlayer
Last updated · Sep 6, 2026
narrow React component prop types to match live code paths
Sandbox only
Install targets
Codex install prompt
Install the "narrow-react-prop-types" agent skill from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: narrow React component prop types to match live code paths After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"humanlayer-skills-narrow-react-prop-types","task":"Install narrow-react-prop-types","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add humanlayer/skills --skill narrow-react-prop-types
Maintenance
fresh
Pushed today
Risk
Safe to try
Permission surface may require sandboxing
GitHub quality
2.9K
94/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Permission surface needs review: shell or command execution, filesystem or document access
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.9K GitHub stars
Repo activity
2.9K stars, 82 forks
Maintenance
Pushed today
License
MIT
Install
npx skills add humanlayer/skills --skill narrow-react-prop-types
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add humanlayer/skills --skill narrow-react-prop-typesDo not use when
Alternative
40.4K Stars
npx skills add PatrickJS/awesome-cursorrules
Alternative
246.3K Stars
npx skills add affaan-m/ECC --skill agent-introspection-debugging
Alternative
639 Stars
npx skills add sandbaseai/sandbase-harness --skill code-review
Alternative
2 Stars
npx skills add sasjs/skills --skill sas
Agent safety v2
Usable candidate, but the agent should surface permission and audit notes before installation.
Require human approval before installing into a real workspace.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
Agent should check
Copy prompt
Task: Use narrow-react-prop-types in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install
Install command: npx skills add humanlayer/skills --skill narrow-react-prop-types
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
LLM text format
/api/skills/humanlayer-skills-narrow-react-prop-types/install?format=text
Find alternatives
/api/skills/search?q=narrow-react-prop-types&limit=3
Agent prompt
Use narrow-react-prop-types for this task. Review https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install, then install with: npx skills add humanlayer/skills --skill narrow-react-prop-typesRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types
LLM text
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types?format=text
Install alias
/api/registry/install/humanlayer-skills-narrow-react-prop-types
Recommend
/api/registry/recommend?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.9K GitHub stars
Stars/forks activity
INFO2.9K stars, 82 forks; issue activity unavailable in current metadata
Recent maintenance
PASSPushed today
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
A curated collection of cursor rules for various frameworks and technologies
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
--- name: narrow-react-prop-types description: narrow React component prop types to match live code paths ---
# Narrow React Prop Types
Use this skill when a React component's props have been widened for stories, mocks, tests, or demos and now express states the live application does not enter.
The goal is to make component types describe the real live-code-path contract, then require stories/tests/mocks to adapt to that contract instead of weakening it.
## Core Requirements
- Find the actual non-test, non-Storybook call sites before changing types. - Treat live code paths as the source of truth for the prop contract. - Do not preserve optional props only because they make Storybook, tests, or mock data easier. - Keep props optional only when there are non-Storybook, non-test call sites which do not provide them and which have a good reason for not doing so. - Types should not enable expressing states which are not observed in non-test, non-Storybook call sites. - Types should be as strict as possible so code can be as simple as possible. - Prefer deriving and extracting types from existing live-code-path values and APIs where possible.
## Workflow
For an example recurring GitHub Actions workflow that runs this skill through CodeLayer, see `references/agent-narrow-component-props.yml`. Its example agent memory file is `references/narrow-component-props-memory.md`. For CI agent response formatting, see `references/response-template.md`.
### 1. Identify the suspect component
Look for components with these signals:
- Large props interfaces with many optional fields. - Optional callback calls such as `onSelect?.(...)` or `onArchive?.(...)`. - Fallback state handling such as `items ?? []`, `count ?? 0`, or `handler && ...` around values live code likely always supplies. - UI affordances that always render even though their callbacks are optional. - Props that look demo-oriented, such as `defaultFoo`, alternate handler shapes, or display toggles not used by live code.
Do not pick a target from a story or test alone. Use stories/tests only as supporting evidence that the type has been widened, not as evidence that a state is real.
### 2. Find every live usage
Search for all imports/usages of the component, exported prop type, and shared child primitives.
Classify call sites by whether they are live code paths or support code:
- Live code paths: app routes, wired components, providers, hooks, production package exports, and shared components used by those paths. - Support code: Storybook stories, test files, fixtures, mocks, demo harnesses, and visual-only examples.
Only live code paths should determine what the component API supports.
### 3. Derive the real types from the live code paths
Read the live call sites and classify each prop:
- Required: every non-test, non-Storybook call site supplies it. - Optional: at least one non-test, non-Storybook call site omits it and that omission is a meaningful runtime state. - Removed: no non-test, non-Storybook call site uses it.
Nullability and optionality are different. If live code always passes a prop but the value can be empty, prefer a required nullable prop such as `focusedItem: FocusedItem | null` over `focusedItem?: FocusedItem | null`.
### 4. Tighten the public prop type
Update exported prop types to match only the states observed in live code paths.
The looser and more optional a type is, the more possible states the component has to reason about. Every optional prop creates another branch the component must handle, test, and keep correct. Prefer strict types that prevent impossible states instead of broad types that require defensive render logic.
If the component always renders an interactive affordance, require the handler that makes it work. Do not allow inert states like a visible menu item that calls `onRename?.(...)`.
### 5. Derive and extract types where possible
Prefer deriving types from the live APIs instead of restating them manually:
- `Parameters<typeof fn>[0]` for function argument types. - `ReturnType<typeof fn>` for return types. - `Extract<Union, Shape>` for narrowing a union to a real variant. - `React.Dispatch<React.SetStateAction<T>>` for React state setters instead of approximating them as `(value: T) => void`.
Prefer explicit state type parameters when inference would widen or obscure the intended state shape:
```ts const [dialogState, setDialogState] = useState<DialogState>({ id: null, isOpen: false, }) ```
Avoid relying on implicit `useState(...)` inference when it produces broad nullable object shapes, string literal widening, or callback types that later need hand-written approximations.
### 6. Tighten internal child props too
Do not stop at the exported component if it passes broad props into child primitives.
If row/menu/button child components receive optional handlers only because the parent props were broad, tighten those internal props too. Replace optional calls like this:
```ts onRename?.(id, name) ```
with required calls:
```ts onRename(id, name) ```
### 7. Remove fallback logic for unsupported states
Once props are required, remove defensive fallbacks that only existed for widened types.
Examples:
```ts new Set(expandedIds ?? defaultExpandedIds ?? []) ```
should become:
```ts new Set(expandedIds) ```
```ts items && items.length > 0 ```
should become:
```ts items.length > 0 ```
### 8. Update all variants that share the prop type
If multiple components share the broad prop type, update them together so they all enforce the same live-code-path contract.
### 9. Let tests and stories adapt to live code
If a story or test breaks after narrowing props, fix it by providing realistic handlers and state. Do not make live-code-path props optional again to reduce test setup.
If the story/test setup feels verbose, create a test helper or fixture that satisfies the strict live-code-path contract. Keep the helper in support code; do not weaken the component API.
### 10. Validate the change
Run package-level typechecks for the changed package and each live app/package that consumes the changed component.
Use repository-specific validation commands when available. In this monorepo, prefer:
```bash bun --bun run typecheck --filter <package> ```
### 11. Format the response
When running as a CI agent, format your final response according to `references/response-template.md`. This response becomes the PR body.
Include: - Summary of how many components were narrowed - Table of changes with rationale - Live call sites that justify each narrowing - Support code (stories/tests) that needed updating - Validation results - Risk assessment
## Review Checklist
- The changed prop type was derived from non-test, non-Storybook call sites. - Optional callbacks are removed for always-rendered interactions. - Rendered menu items and buttons cannot be inert because of missing handlers. - Removed props are not used by live code paths. - Nullability is preserved only for real states, such as no current focus. - Types are derived or extracted where possible rather than manually duplicated. - `useState<T>(...)` is used where inference would otherwise widen or obscure the intended state. - Shared variants compile against the same narrowed contract. - Typecheck passes for the shared package and consuming live app/package.
## Anti-Patterns to Avoid
- Making callbacks optional so stories can omit them. - Rendering a menu item that calls `onAction?.(...)`. - Adding `default*` props for Storybook when live code is controlled. - Using `?? []` or `?? 0` to hide missing required live state. - Accepting multiple API shapes when live code only uses one. - Treating pure components as mock components with relaxed contracts.
Decision snapshot
2,874 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for narrow-react-prop-types, ready for a manual X post.
Before you hand an agent the next repo task, give it a repeatable starting point. narrow-react-prop-types: narrow React component prop types to match live code paths 2.9K stars https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x
Listing + install path for narrow-react-prop-types: https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x Install: npx skills add humanlayer/skills --skill narrow-react-prop-types
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Agent submitted listing is attributed to humanlayer but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types/audit)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Cursor Rules
A curated collection of cursor rules for various frameworks and technologies
40.4K Starsagent-introspection-debugging
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
246.3K Starscode-review
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
639 Starssas
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
2 StarsSandbox only
Install targets
Codex install prompt
Install the "narrow-react-prop-types" agent skill from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: narrow React component prop types to match live code paths After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"humanlayer-skills-narrow-react-prop-types","task":"Install narrow-react-prop-types","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add humanlayer/skills --skill narrow-react-prop-types
Maintenance
fresh
Pushed today
Risk
Safe to try
Permission surface may require sandboxing
GitHub quality
2.9K
94/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Permission surface needs review: shell or command execution, filesystem or document access
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.9K GitHub stars
Repo activity
2.9K stars, 82 forks
Maintenance
Pushed today
License
MIT
Install
npx skills add humanlayer/skills --skill narrow-react-prop-types
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add humanlayer/skills --skill narrow-react-prop-typesDo not use when
Alternative
40.4K Stars
npx skills add PatrickJS/awesome-cursorrules
Alternative
246.3K Stars
npx skills add affaan-m/ECC --skill agent-introspection-debugging
Alternative
639 Stars
npx skills add sandbaseai/sandbase-harness --skill code-review
Alternative
2 Stars
npx skills add sasjs/skills --skill sas
Agent safety v2
Usable candidate, but the agent should surface permission and audit notes before installation.
Require human approval before installing into a real workspace.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
Agent should check
Copy prompt
Task: Use narrow-react-prop-types in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install
Install command: npx skills add humanlayer/skills --skill narrow-react-prop-types
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
LLM text format
/api/skills/humanlayer-skills-narrow-react-prop-types/install?format=text
Find alternatives
/api/skills/search?q=narrow-react-prop-types&limit=3
Agent prompt
Use narrow-react-prop-types for this task. Review https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install, then install with: npx skills add humanlayer/skills --skill narrow-react-prop-typesRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types
LLM text
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types?format=text
Install alias
/api/registry/install/humanlayer-skills-narrow-react-prop-types
Recommend
/api/registry/recommend?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.9K GitHub stars
Stars/forks activity
INFO2.9K stars, 82 forks; issue activity unavailable in current metadata
Recent maintenance
PASSPushed today
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
A curated collection of cursor rules for various frameworks and technologies
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
--- name: narrow-react-prop-types description: narrow React component prop types to match live code paths ---
# Narrow React Prop Types
Use this skill when a React component's props have been widened for stories, mocks, tests, or demos and now express states the live application does not enter.
The goal is to make component types describe the real live-code-path contract, then require stories/tests/mocks to adapt to that contract instead of weakening it.
## Core Requirements
- Find the actual non-test, non-Storybook call sites before changing types. - Treat live code paths as the source of truth for the prop contract. - Do not preserve optional props only because they make Storybook, tests, or mock data easier. - Keep props optional only when there are non-Storybook, non-test call sites which do not provide them and which have a good reason for not doing so. - Types should not enable expressing states which are not observed in non-test, non-Storybook call sites. - Types should be as strict as possible so code can be as simple as possible. - Prefer deriving and extracting types from existing live-code-path values and APIs where possible.
## Workflow
For an example recurring GitHub Actions workflow that runs this skill through CodeLayer, see `references/agent-narrow-component-props.yml`. Its example agent memory file is `references/narrow-component-props-memory.md`. For CI agent response formatting, see `references/response-template.md`.
### 1. Identify the suspect component
Look for components with these signals:
- Large props interfaces with many optional fields. - Optional callback calls such as `onSelect?.(...)` or `onArchive?.(...)`. - Fallback state handling such as `items ?? []`, `count ?? 0`, or `handler && ...` around values live code likely always supplies. - UI affordances that always render even though their callbacks are optional. - Props that look demo-oriented, such as `defaultFoo`, alternate handler shapes, or display toggles not used by live code.
Do not pick a target from a story or test alone. Use stories/tests only as supporting evidence that the type has been widened, not as evidence that a state is real.
### 2. Find every live usage
Search for all imports/usages of the component, exported prop type, and shared child primitives.
Classify call sites by whether they are live code paths or support code:
- Live code paths: app routes, wired components, providers, hooks, production package exports, and shared components used by those paths. - Support code: Storybook stories, test files, fixtures, mocks, demo harnesses, and visual-only examples.
Only live code paths should determine what the component API supports.
### 3. Derive the real types from the live code paths
Read the live call sites and classify each prop:
- Required: every non-test, non-Storybook call site supplies it. - Optional: at least one non-test, non-Storybook call site omits it and that omission is a meaningful runtime state. - Removed: no non-test, non-Storybook call site uses it.
Nullability and optionality are different. If live code always passes a prop but the value can be empty, prefer a required nullable prop such as `focusedItem: FocusedItem | null` over `focusedItem?: FocusedItem | null`.
### 4. Tighten the public prop type
Update exported prop types to match only the states observed in live code paths.
The looser and more optional a type is, the more possible states the component has to reason about. Every optional prop creates another branch the component must handle, test, and keep correct. Prefer strict types that prevent impossible states instead of broad types that require defensive render logic.
If the component always renders an interactive affordance, require the handler that makes it work. Do not allow inert states like a visible menu item that calls `onRename?.(...)`.
### 5. Derive and extract types where possible
Prefer deriving types from the live APIs instead of restating them manually:
- `Parameters<typeof fn>[0]` for function argument types. - `ReturnType<typeof fn>` for return types. - `Extract<Union, Shape>` for narrowing a union to a real variant. - `React.Dispatch<React.SetStateAction<T>>` for React state setters instead of approximating them as `(value: T) => void`.
Prefer explicit state type parameters when inference would widen or obscure the intended state shape:
```ts const [dialogState, setDialogState] = useState<DialogState>({ id: null, isOpen: false, }) ```
Avoid relying on implicit `useState(...)` inference when it produces broad nullable object shapes, string literal widening, or callback types that later need hand-written approximations.
### 6. Tighten internal child props too
Do not stop at the exported component if it passes broad props into child primitives.
If row/menu/button child components receive optional handlers only because the parent props were broad, tighten those internal props too. Replace optional calls like this:
```ts onRename?.(id, name) ```
with required calls:
```ts onRename(id, name) ```
### 7. Remove fallback logic for unsupported states
Once props are required, remove defensive fallbacks that only existed for widened types.
Examples:
```ts new Set(expandedIds ?? defaultExpandedIds ?? []) ```
should become:
```ts new Set(expandedIds) ```
```ts items && items.length > 0 ```
should become:
```ts items.length > 0 ```
### 8. Update all variants that share the prop type
If multiple components share the broad prop type, update them together so they all enforce the same live-code-path contract.
### 9. Let tests and stories adapt to live code
If a story or test breaks after narrowing props, fix it by providing realistic handlers and state. Do not make live-code-path props optional again to reduce test setup.
If the story/test setup feels verbose, create a test helper or fixture that satisfies the strict live-code-path contract. Keep the helper in support code; do not weaken the component API.
### 10. Validate the change
Run package-level typechecks for the changed package and each live app/package that consumes the changed component.
Use repository-specific validation commands when available. In this monorepo, prefer:
```bash bun --bun run typecheck --filter <package> ```
### 11. Format the response
When running as a CI agent, format your final response according to `references/response-template.md`. This response becomes the PR body.
Include: - Summary of how many components were narrowed - Table of changes with rationale - Live call sites that justify each narrowing - Support code (stories/tests) that needed updating - Validation results - Risk assessment
## Review Checklist
- The changed prop type was derived from non-test, non-Storybook call sites. - Optional callbacks are removed for always-rendered interactions. - Rendered menu items and buttons cannot be inert because of missing handlers. - Removed props are not used by live code paths. - Nullability is preserved only for real states, such as no current focus. - Types are derived or extracted where possible rather than manually duplicated. - `useState<T>(...)` is used where inference would otherwise widen or obscure the intended state. - Shared variants compile against the same narrowed contract. - Typecheck passes for the shared package and consuming live app/package.
## Anti-Patterns to Avoid
- Making callbacks optional so stories can omit them. - Rendering a menu item that calls `onAction?.(...)`. - Adding `default*` props for Storybook when live code is controlled. - Using `?? []` or `?? 0` to hide missing required live state. - Accepting multiple API shapes when live code only uses one. - Treating pure components as mock components with relaxed contracts.
Decision snapshot
2,874 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for narrow-react-prop-types, ready for a manual X post.
Before you hand an agent the next repo task, give it a repeatable starting point. narrow-react-prop-types: narrow React component prop types to match live code paths 2.9K stars https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x
Listing + install path for narrow-react-prop-types: https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x Install: npx skills add humanlayer/skills --skill narrow-react-prop-types
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Agent submitted listing is attributed to humanlayer but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types/audit)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Cursor Rules
A curated collection of cursor rules for various frameworks and technologies
40.4K Starsagent-introspection-debugging
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
246.3K Starscode-review
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
639 Starssas
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
2 StarsSandbox only
Install targets
Codex install prompt
Install the "narrow-react-prop-types" agent skill from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: narrow React component prop types to match live code paths After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"humanlayer-skills-narrow-react-prop-types","task":"Install narrow-react-prop-types","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add humanlayer/skills --skill narrow-react-prop-types
Maintenance
fresh
Pushed today
Risk
Safe to try
Permission surface may require sandboxing
GitHub quality
2.9K
94/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Permission surface needs review: shell or command execution, filesystem or document access
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.9K GitHub stars
Repo activity
2.9K stars, 82 forks
Maintenance
Pushed today
License
MIT
Install
npx skills add humanlayer/skills --skill narrow-react-prop-types
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add humanlayer/skills --skill narrow-react-prop-typesDo not use when
Alternative
40.4K Stars
npx skills add PatrickJS/awesome-cursorrules
Alternative
246.3K Stars
npx skills add affaan-m/ECC --skill agent-introspection-debugging
Alternative
639 Stars
npx skills add sandbaseai/sandbase-harness --skill code-review
Alternative
2 Stars
npx skills add sasjs/skills --skill sas
Agent safety v2
Usable candidate, but the agent should surface permission and audit notes before installation.
Require human approval before installing into a real workspace.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
Agent should check
Copy prompt
Task: Use narrow-react-prop-types in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install
Install command: npx skills add humanlayer/skills --skill narrow-react-prop-types
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
LLM text format
/api/skills/humanlayer-skills-narrow-react-prop-types/install?format=text
Find alternatives
/api/skills/search?q=narrow-react-prop-types&limit=3
Agent prompt
Use narrow-react-prop-types for this task. Review https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install, then install with: npx skills add humanlayer/skills --skill narrow-react-prop-typesRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types
LLM text
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types?format=text
Install alias
/api/registry/install/humanlayer-skills-narrow-react-prop-types
Recommend
/api/registry/recommend?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.9K GitHub stars
Stars/forks activity
INFO2.9K stars, 82 forks; issue activity unavailable in current metadata
Recent maintenance
PASSPushed today
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
A curated collection of cursor rules for various frameworks and technologies
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
--- name: narrow-react-prop-types description: narrow React component prop types to match live code paths ---
# Narrow React Prop Types
Use this skill when a React component's props have been widened for stories, mocks, tests, or demos and now express states the live application does not enter.
The goal is to make component types describe the real live-code-path contract, then require stories/tests/mocks to adapt to that contract instead of weakening it.
## Core Requirements
- Find the actual non-test, non-Storybook call sites before changing types. - Treat live code paths as the source of truth for the prop contract. - Do not preserve optional props only because they make Storybook, tests, or mock data easier. - Keep props optional only when there are non-Storybook, non-test call sites which do not provide them and which have a good reason for not doing so. - Types should not enable expressing states which are not observed in non-test, non-Storybook call sites. - Types should be as strict as possible so code can be as simple as possible. - Prefer deriving and extracting types from existing live-code-path values and APIs where possible.
## Workflow
For an example recurring GitHub Actions workflow that runs this skill through CodeLayer, see `references/agent-narrow-component-props.yml`. Its example agent memory file is `references/narrow-component-props-memory.md`. For CI agent response formatting, see `references/response-template.md`.
### 1. Identify the suspect component
Look for components with these signals:
- Large props interfaces with many optional fields. - Optional callback calls such as `onSelect?.(...)` or `onArchive?.(...)`. - Fallback state handling such as `items ?? []`, `count ?? 0`, or `handler && ...` around values live code likely always supplies. - UI affordances that always render even though their callbacks are optional. - Props that look demo-oriented, such as `defaultFoo`, alternate handler shapes, or display toggles not used by live code.
Do not pick a target from a story or test alone. Use stories/tests only as supporting evidence that the type has been widened, not as evidence that a state is real.
### 2. Find every live usage
Search for all imports/usages of the component, exported prop type, and shared child primitives.
Classify call sites by whether they are live code paths or support code:
- Live code paths: app routes, wired components, providers, hooks, production package exports, and shared components used by those paths. - Support code: Storybook stories, test files, fixtures, mocks, demo harnesses, and visual-only examples.
Only live code paths should determine what the component API supports.
### 3. Derive the real types from the live code paths
Read the live call sites and classify each prop:
- Required: every non-test, non-Storybook call site supplies it. - Optional: at least one non-test, non-Storybook call site omits it and that omission is a meaningful runtime state. - Removed: no non-test, non-Storybook call site uses it.
Nullability and optionality are different. If live code always passes a prop but the value can be empty, prefer a required nullable prop such as `focusedItem: FocusedItem | null` over `focusedItem?: FocusedItem | null`.
### 4. Tighten the public prop type
Update exported prop types to match only the states observed in live code paths.
The looser and more optional a type is, the more possible states the component has to reason about. Every optional prop creates another branch the component must handle, test, and keep correct. Prefer strict types that prevent impossible states instead of broad types that require defensive render logic.
If the component always renders an interactive affordance, require the handler that makes it work. Do not allow inert states like a visible menu item that calls `onRename?.(...)`.
### 5. Derive and extract types where possible
Prefer deriving types from the live APIs instead of restating them manually:
- `Parameters<typeof fn>[0]` for function argument types. - `ReturnType<typeof fn>` for return types. - `Extract<Union, Shape>` for narrowing a union to a real variant. - `React.Dispatch<React.SetStateAction<T>>` for React state setters instead of approximating them as `(value: T) => void`.
Prefer explicit state type parameters when inference would widen or obscure the intended state shape:
```ts const [dialogState, setDialogState] = useState<DialogState>({ id: null, isOpen: false, }) ```
Avoid relying on implicit `useState(...)` inference when it produces broad nullable object shapes, string literal widening, or callback types that later need hand-written approximations.
### 6. Tighten internal child props too
Do not stop at the exported component if it passes broad props into child primitives.
If row/menu/button child components receive optional handlers only because the parent props were broad, tighten those internal props too. Replace optional calls like this:
```ts onRename?.(id, name) ```
with required calls:
```ts onRename(id, name) ```
### 7. Remove fallback logic for unsupported states
Once props are required, remove defensive fallbacks that only existed for widened types.
Examples:
```ts new Set(expandedIds ?? defaultExpandedIds ?? []) ```
should become:
```ts new Set(expandedIds) ```
```ts items && items.length > 0 ```
should become:
```ts items.length > 0 ```
### 8. Update all variants that share the prop type
If multiple components share the broad prop type, update them together so they all enforce the same live-code-path contract.
### 9. Let tests and stories adapt to live code
If a story or test breaks after narrowing props, fix it by providing realistic handlers and state. Do not make live-code-path props optional again to reduce test setup.
If the story/test setup feels verbose, create a test helper or fixture that satisfies the strict live-code-path contract. Keep the helper in support code; do not weaken the component API.
### 10. Validate the change
Run package-level typechecks for the changed package and each live app/package that consumes the changed component.
Use repository-specific validation commands when available. In this monorepo, prefer:
```bash bun --bun run typecheck --filter <package> ```
### 11. Format the response
When running as a CI agent, format your final response according to `references/response-template.md`. This response becomes the PR body.
Include: - Summary of how many components were narrowed - Table of changes with rationale - Live call sites that justify each narrowing - Support code (stories/tests) that needed updating - Validation results - Risk assessment
## Review Checklist
- The changed prop type was derived from non-test, non-Storybook call sites. - Optional callbacks are removed for always-rendered interactions. - Rendered menu items and buttons cannot be inert because of missing handlers. - Removed props are not used by live code paths. - Nullability is preserved only for real states, such as no current focus. - Types are derived or extracted where possible rather than manually duplicated. - `useState<T>(...)` is used where inference would otherwise widen or obscure the intended state. - Shared variants compile against the same narrowed contract. - Typecheck passes for the shared package and consuming live app/package.
## Anti-Patterns to Avoid
- Making callbacks optional so stories can omit them. - Rendering a menu item that calls `onAction?.(...)`. - Adding `default*` props for Storybook when live code is controlled. - Using `?? []` or `?? 0` to hide missing required live state. - Accepting multiple API shapes when live code only uses one. - Treating pure components as mock components with relaxed contracts.
Decision snapshot
2,874 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for narrow-react-prop-types, ready for a manual X post.
Before you hand an agent the next repo task, give it a repeatable starting point. narrow-react-prop-types: narrow React component prop types to match live code paths 2.9K stars https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x
Listing + install path for narrow-react-prop-types: https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x Install: npx skills add humanlayer/skills --skill narrow-react-prop-types
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Agent submitted listing is attributed to humanlayer but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types/audit)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Cursor Rules
A curated collection of cursor rules for various frameworks and technologies
40.4K Starsagent-introspection-debugging
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
246.3K Starscode-review
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
639 Starssas
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
2 StarsSandbox only
Install targets
Codex install prompt
Install the "narrow-react-prop-types" agent skill from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types. Read its SKILL.md or equivalent instructions first, install only the files needed for this workspace, and summarize any required setup before using it. Skill purpose: narrow React component prop types to match live code paths After the install attempt, report the result to https://www.openagentskill.com/api/agent/outcome with POST JSON {"event_id":"install_<unique-id>","skill_slug":"humanlayer-skills-narrow-react-prop-types","task":"Install narrow-react-prop-types","agent":"codex","outcome":"success","install_used":true}. Replace event_id with a unique value and outcome with success or failed. Report success only after the skill is installed and a minimal verification passes.Supply asset profile
Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills.
Scenario
GitHub automation
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Agent fit
Claude Code + CLI + Codex
Codex, Claude Code, Cursor, CLI, or custom agents.
Install
Ready
npx skills add humanlayer/skills --skill narrow-react-prop-types
Maintenance
fresh
Pushed today
Risk
Safe to try
Permission surface may require sandboxing
GitHub quality
2.9K
94/100 Quality · 79/100 Trust
Coverage tags
Review notes
Permission surface may require sandboxing · Permission surface needs review: shell or command execution, filesystem or document access
Agent adoption scorecard
These scores combine public repository metadata, OpenAgentSkill review signals, maintenance freshness, and install readiness. They are a shortlist signal, not a replacement for human review.
Quality
ExcellentHigh-confidence pick with strong adoption and healthy maintenance signals.
Trust
Sandbox onlyUseful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
Audit
Safe to tryA machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
OpenAgentSkill Trust Score v5
Run only in a sandbox and compare close alternatives before using it for real work.
Stars
2.9K GitHub stars
Repo activity
2.9K stars, 82 forks
Maintenance
Pushed today
License
MIT
Install
npx skills add humanlayer/skills --skill narrow-react-prop-types
Install safety
Agent-readable metadata
Use this block or the embedded JSON to decide whether an agent should install this skill, choose an alternative, or ask for human review first.
Suited tasks
Suited agents
Install decision
Trust and risk
Outcome loop
Install command
npx skills add humanlayer/skills --skill narrow-react-prop-typesDo not use when
Alternative
40.4K Stars
npx skills add PatrickJS/awesome-cursorrules
Alternative
246.3K Stars
npx skills add affaan-m/ECC --skill agent-introspection-debugging
Alternative
639 Stars
npx skills add sandbaseai/sandbase-harness --skill code-review
Alternative
2 Stars
npx skills add sasjs/skills --skill sas
Agent safety v2
Usable candidate, but the agent should surface permission and audit notes before installation.
Require human approval before installing into a real workspace.
high
Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.
medium
Skill likely fetches remote pages, APIs, repositories, or external services.
medium
Skill may read or write project files, documents, generated artifacts, or local workspace state.
Agent resolve plan
The Resolve API returns the selected skill, alternatives, safety policy, audit notes, install target, and copy-paste prompt an agent can follow without scraping this page.
Open JSON
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Resolve text
/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
Agent should check
Copy prompt
Task: Use narrow-react-prop-types in this workspace.
Resolve first: https://www.openagentskill.com/api/agent/resolve?task=Use%20narrow-react-prop-types%20for%20an%20agent%20workflow&agent=codex&max_risk=medium
Review install handoff: https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install
Install command: npx skills add humanlayer/skills --skill narrow-react-prop-types
Before running it, summarize audit warnings, required permissions, and the fallback skill if install is risky.Agent handoff
Use the public install endpoint to fetch the command, safety checklist, target prompts, and canonical links for this skill.
Install handoff
/api/skills/humanlayer-skills-narrow-react-prop-types/install
LLM text format
/api/skills/humanlayer-skills-narrow-react-prop-types/install?format=text
Find alternatives
/api/skills/search?q=narrow-react-prop-types&limit=3
Agent prompt
Use narrow-react-prop-types for this task. Review https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install, then install with: npx skills add humanlayer/skills --skill narrow-react-prop-typesRegistry metadata
This page exposes the same decision, trust, audit, use-case, and install signals through the Registry API, so agents can rank this skill without scraping the UI.
Manifest
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types
LLM text
/api/registry/manifest/humanlayer-skills-narrow-react-prop-types?format=text
Install alias
/api/registry/install/humanlayer-skills-narrow-react-prop-types
Recommend
/api/registry/recommend?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&limit=3
Agent fit
GitHub automation
Use-case tags
Platforms
Claude Code
Audit report
A machine-readable review of install readiness, security metadata, maintenance, and adoption risk.
Agent decision cockpit
Use this as a leading candidate, then validate the README and install path in your own agent stack.
Role in stack
Primary pick
Primary fit
GitHub automation
Trust label
Production-ready
Install path
Command ready
Use when
Evidence
review first
Implementation path
Trust profile
Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.
GitHub adoption
PASS2.9K GitHub stars
Stars/forks activity
INFO2.9K stars, 82 forks; issue activity unavailable in current metadata
Recent maintenance
PASSPushed today
License clarity
PASSMIT
Good signals
Review before install
Recommended action
Run only in a sandbox and compare close alternatives before using it for real work.
Quality profile
High-confidence pick with strong adoption and healthy maintenance signals.
Workflow fit
Manage repositories
I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.
Build and ship code
I need a coding agent that can understand a repository, edit code, and review pull requests.
Operate web apps
I need my agent to control a browser, fill forms, and verify web app workflows.
Workflow fit
Inspect, patch, and verify code
A workflow for software agents that inspect repositories, review pull requests, generate tests, and turn findings into shippable patches.
Operate and verify web apps
A workflow for agents that navigate products, fill forms, take screenshots, and verify real user flows across web applications.
Find, compare, and synthesize
A workflow for agents that gather sources, compare claims, summarize long material, and draft useful research briefs.
Alternative shortlist
Similar skills that may fit this task.
A curated collection of cursor rules for various frameworks and technologies
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
--- name: narrow-react-prop-types description: narrow React component prop types to match live code paths ---
# Narrow React Prop Types
Use this skill when a React component's props have been widened for stories, mocks, tests, or demos and now express states the live application does not enter.
The goal is to make component types describe the real live-code-path contract, then require stories/tests/mocks to adapt to that contract instead of weakening it.
## Core Requirements
- Find the actual non-test, non-Storybook call sites before changing types. - Treat live code paths as the source of truth for the prop contract. - Do not preserve optional props only because they make Storybook, tests, or mock data easier. - Keep props optional only when there are non-Storybook, non-test call sites which do not provide them and which have a good reason for not doing so. - Types should not enable expressing states which are not observed in non-test, non-Storybook call sites. - Types should be as strict as possible so code can be as simple as possible. - Prefer deriving and extracting types from existing live-code-path values and APIs where possible.
## Workflow
For an example recurring GitHub Actions workflow that runs this skill through CodeLayer, see `references/agent-narrow-component-props.yml`. Its example agent memory file is `references/narrow-component-props-memory.md`. For CI agent response formatting, see `references/response-template.md`.
### 1. Identify the suspect component
Look for components with these signals:
- Large props interfaces with many optional fields. - Optional callback calls such as `onSelect?.(...)` or `onArchive?.(...)`. - Fallback state handling such as `items ?? []`, `count ?? 0`, or `handler && ...` around values live code likely always supplies. - UI affordances that always render even though their callbacks are optional. - Props that look demo-oriented, such as `defaultFoo`, alternate handler shapes, or display toggles not used by live code.
Do not pick a target from a story or test alone. Use stories/tests only as supporting evidence that the type has been widened, not as evidence that a state is real.
### 2. Find every live usage
Search for all imports/usages of the component, exported prop type, and shared child primitives.
Classify call sites by whether they are live code paths or support code:
- Live code paths: app routes, wired components, providers, hooks, production package exports, and shared components used by those paths. - Support code: Storybook stories, test files, fixtures, mocks, demo harnesses, and visual-only examples.
Only live code paths should determine what the component API supports.
### 3. Derive the real types from the live code paths
Read the live call sites and classify each prop:
- Required: every non-test, non-Storybook call site supplies it. - Optional: at least one non-test, non-Storybook call site omits it and that omission is a meaningful runtime state. - Removed: no non-test, non-Storybook call site uses it.
Nullability and optionality are different. If live code always passes a prop but the value can be empty, prefer a required nullable prop such as `focusedItem: FocusedItem | null` over `focusedItem?: FocusedItem | null`.
### 4. Tighten the public prop type
Update exported prop types to match only the states observed in live code paths.
The looser and more optional a type is, the more possible states the component has to reason about. Every optional prop creates another branch the component must handle, test, and keep correct. Prefer strict types that prevent impossible states instead of broad types that require defensive render logic.
If the component always renders an interactive affordance, require the handler that makes it work. Do not allow inert states like a visible menu item that calls `onRename?.(...)`.
### 5. Derive and extract types where possible
Prefer deriving types from the live APIs instead of restating them manually:
- `Parameters<typeof fn>[0]` for function argument types. - `ReturnType<typeof fn>` for return types. - `Extract<Union, Shape>` for narrowing a union to a real variant. - `React.Dispatch<React.SetStateAction<T>>` for React state setters instead of approximating them as `(value: T) => void`.
Prefer explicit state type parameters when inference would widen or obscure the intended state shape:
```ts const [dialogState, setDialogState] = useState<DialogState>({ id: null, isOpen: false, }) ```
Avoid relying on implicit `useState(...)` inference when it produces broad nullable object shapes, string literal widening, or callback types that later need hand-written approximations.
### 6. Tighten internal child props too
Do not stop at the exported component if it passes broad props into child primitives.
If row/menu/button child components receive optional handlers only because the parent props were broad, tighten those internal props too. Replace optional calls like this:
```ts onRename?.(id, name) ```
with required calls:
```ts onRename(id, name) ```
### 7. Remove fallback logic for unsupported states
Once props are required, remove defensive fallbacks that only existed for widened types.
Examples:
```ts new Set(expandedIds ?? defaultExpandedIds ?? []) ```
should become:
```ts new Set(expandedIds) ```
```ts items && items.length > 0 ```
should become:
```ts items.length > 0 ```
### 8. Update all variants that share the prop type
If multiple components share the broad prop type, update them together so they all enforce the same live-code-path contract.
### 9. Let tests and stories adapt to live code
If a story or test breaks after narrowing props, fix it by providing realistic handlers and state. Do not make live-code-path props optional again to reduce test setup.
If the story/test setup feels verbose, create a test helper or fixture that satisfies the strict live-code-path contract. Keep the helper in support code; do not weaken the component API.
### 10. Validate the change
Run package-level typechecks for the changed package and each live app/package that consumes the changed component.
Use repository-specific validation commands when available. In this monorepo, prefer:
```bash bun --bun run typecheck --filter <package> ```
### 11. Format the response
When running as a CI agent, format your final response according to `references/response-template.md`. This response becomes the PR body.
Include: - Summary of how many components were narrowed - Table of changes with rationale - Live call sites that justify each narrowing - Support code (stories/tests) that needed updating - Validation results - Risk assessment
## Review Checklist
- The changed prop type was derived from non-test, non-Storybook call sites. - Optional callbacks are removed for always-rendered interactions. - Rendered menu items and buttons cannot be inert because of missing handlers. - Removed props are not used by live code paths. - Nullability is preserved only for real states, such as no current focus. - Types are derived or extracted where possible rather than manually duplicated. - `useState<T>(...)` is used where inference would otherwise widen or obscure the intended state. - Shared variants compile against the same narrowed contract. - Typecheck passes for the shared package and consuming live app/package.
## Anti-Patterns to Avoid
- Making callbacks optional so stories can omit them. - Rendering a menu item that calls `onAction?.(...)`. - Adding `default*` props for Storybook when live code is controlled. - Using `?? []` or `?? 0` to hide missing required live state. - Accepting multiple API shapes when live code only uses one. - Treating pure components as mock components with relaxed contracts.
Decision snapshot
2,874 GitHub stars
Audit
Install and adoption review
Agent-proven evidence
Outcome reports after resolve, review, install, and one narrow run.
No agent outcome data yet. The first agent run can report success, setup needs, risk blocks, failure, or not-relevant through /api/agent/outcome.
Install
Free and open source. Review the report before installing into production agents.
Growth loop
Scenario-led draft for narrow-react-prop-types, ready for a manual X post.
Before you hand an agent the next repo task, give it a repeatable starting point. narrow-react-prop-types: narrow React component prop types to match live code paths 2.9K stars https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x
Listing + install path for narrow-react-prop-types: https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=x Install: npx skills add humanlayer/skills --skill narrow-react-prop-types
Listing source
This listing was indexed from public sources and is not marked official until a maintainer claim is approved.
Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals.
Claim this skillOwner claim
This Agent submitted listing is attributed to humanlayer but is not marked official yet. Claim it to add a verified owner signal and make future launch, install, and audit updates easier to trust.
Creator backlink kit
Show the canonical listing, current trust and audit signals, and real Agent-Proven evidence where developers evaluate the repository.
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types/audit)
[](https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types?ref=github&utm_source=github&utm_medium=referral&utm_campaign=creator_badge)Share whether this skill looks useful for your agent workflow. Aggregated feedback improves rankings over time.
Sandbox only
Cursor Rules
A curated collection of cursor rules for various frameworks and technologies
40.4K Starsagent-introspection-debugging
Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.
246.3K Starscode-review
Reviews a supplied code path or diff for correctness, security, maintainability, and style without executing or modifying it
639 Starssas
Expert guidance for the SAS programming language — DATA step, PROC SQL, macro language, formats, ODS, and common procedures. Pure SAS syntax only, no SASjs-framework content. Use when writing, reviewing, or debugging .sas programs, or answering SAS language questions.
2 StarsPermission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Install readiness
Permission surface
shell or command execution, filesystem or document access
Agent outcomes
No agent outcome data yet
Docs
Usable metadata, review docs
Risk summary
Install readiness