{"slug":"humanlayer-skills-narrow-react-prop-types","name":"narrow-react-prop-types","description":"narrow React component prop types to match live code paths","long_description":"---\nname: narrow-react-prop-types\ndescription: narrow React component prop types to match live code paths\n---\n\n# Narrow React Prop Types\n\nUse 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.\n\nThe 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.\n\n## Core Requirements\n\n- Find the actual non-test, non-Storybook call sites before changing types.\n- Treat live code paths as the source of truth for the prop contract.\n- Do not preserve optional props only because they make Storybook, tests, or mock data easier.\n- 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.\n- Types should not enable expressing states which are not observed in non-test, non-Storybook call sites.\n- Types should be as strict as possible so code can be as simple as possible.\n- Prefer deriving and extracting types from existing live-code-path values and APIs where possible.\n\n## Workflow\n\nFor 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`.\n\n### 1. Identify the suspect component\n\nLook for components with these signals:\n\n- Large props interfaces with many optional fields.\n- Optional callback calls such as `onSelect?.(...)` or `onArchive?.(...)`.\n- Fallback state handling such as `items ?? []`, `count ?? 0`, or `handler && ...` around values live code likely always supplies.\n- UI affordances that always render even though their callbacks are optional.\n- Props that look demo-oriented, such as `defaultFoo`, alternate handler shapes, or display toggles not used by live code.\n\nDo 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.\n\n### 2. Find every live usage\n\nSearch for all imports/usages of the component, exported prop type, and shared child primitives.\n\nClassify call sites by whether they are live code paths or support code:\n\n- Live code paths: app routes, wired components, providers, hooks, production package exports, and shared components used by those paths.\n- Support code: Storybook stories, test files, fixtures, mocks, demo harnesses, and visual-only examples.\n\nOnly live code paths should determine what the component API supports.\n\n### 3. Derive the real types from the live code paths\n\nRead the live call sites and classify each prop:\n\n- Required: every non-test, non-Storybook call site supplies it.\n- Optional: at least one non-test, non-Storybook call site omits it and that omission is a meaningful runtime state.\n- Removed: no non-test, non-Storybook call site uses it.\n\nNullability 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`.\n\n### 4. Tighten the public prop type\n\nUpdate exported prop types to match only the states observed in live code paths.\n\nThe 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.\n\nIf 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?.(...)`.\n\n### 5. Derive and extract types where possible\n\nPrefer deriving types from the live APIs instead of restating them manually:\n\n- `Parameters<typeof fn>[0]` for function argument types.\n- `ReturnType<typeof fn>` for return types.\n- `Extract<Union, Shape>` for narrowing a union to a real variant.\n- `React.Dispatch<React.SetStateAction<T>>` for React state setters instead of approximating them as `(value: T) => void`.\n\nPrefer explicit state type parameters when inference would widen or obscure the intended state shape:\n\n```ts\nconst [dialogState, setDialogState] = useState<DialogState>({\n  id: null,\n  isOpen: false,\n})\n```\n\nAvoid relying on implicit `useState(...)` inference when it produces broad nullable object shapes, string literal widening, or callback types that later need hand-written approximations.\n\n### 6. Tighten internal child props too\n\nDo not stop at the exported component if it passes broad props into child primitives.\n\nIf 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:\n\n```ts\nonRename?.(id, name)\n```\n\nwith required calls:\n\n```ts\nonRename(id, name)\n```\n\n### 7. Remove fallback logic for unsupported states\n\nOnce props are required, remove defensive fallbacks that only existed for widened types.\n\nExamples:\n\n```ts\nnew Set(expandedIds ?? defaultExpandedIds ?? [])\n```\n\nshould become:\n\n```ts\nnew Set(expandedIds)\n```\n\n```ts\nitems && items.length > 0\n```\n\nshould become:\n\n```ts\nitems.length > 0\n```\n\n### 8. Update all variants that share the prop type\n\nIf multiple components share the broad prop type, update them together so they all enforce the same live-code-path contract.\n\n### 9. Let tests and stories adapt to live code\n\nIf 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.\n\nIf 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.\n\n### 10. Validate the change\n\nRun package-level typechecks for the changed package and each live app/package that consumes the changed component.\n\nUse repository-specific validation commands when available. In this monorepo, prefer:\n\n```bash\nbun --bun run typecheck --filter <package>\n```\n\n### 11. Format the response\n\nWhen running as a CI agent, format your final response according to `references/response-template.md`. This response becomes the PR body.\n\nInclude:\n- Summary of how many components were narrowed\n- Table of changes with rationale\n- Live call sites that justify each narrowing\n- Support code (stories/tests) that needed updating\n- Validation results\n- Risk assessment\n\n## Review Checklist\n\n- The changed prop type was derived from non-test, non-Storybook call sites.\n- Optional callbacks are removed for always-rendered interactions.\n- Rendered menu items and buttons cannot be inert because of missing handlers.\n- Removed props are not used by live code paths.\n- Nullability is preserved only for real states, such as no current focus.\n- Types are derived or extracted where possible rather than manually duplicated.\n- `useState<T>(...)` is used where inference would otherwise widen or obscure the intended state.\n- Shared variants compile against the same narrowed contract.\n- Typecheck passes for the shared package and consuming live app/package.\n\n## Anti-Patterns to Avoid\n\n- Making callbacks optional so stories can omit them.\n- Rendering a menu item that calls `onAction?.(...)`.\n- Adding `default*` props for Storybook when live code is controlled.\n- Using `?? []` or `?? 0` to hide missing required live state.\n- Accepting multiple API shapes when live code only uses one.\n- Treating pure components as mock components with relaxed contracts.\n","tagline":"narrow React component prop types to match live code paths","category":"developer-tools","tags":["react","typescript","refactoring","code-quality","agent-skill"],"author":"humanlayer","verified":false,"attribution":{"status":"agent_submitted","statusLabel":"Agent submitted","shortLabel":"AGENT SUBMITTED","sourceLabel":"Agent submitted","sourceDetail":"humanlayer/skills","creatorName":"humanlayer","creatorUrl":"https://github.com/humanlayer","sourceUrl":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","indexedBy":"OpenAgentSkill community index","claimUrl":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types#claim-this-skill","claimCta":"Claim this skill","trustNote":"This listing was indexed from public sources and is not marked official until a maintainer claim is approved.","publicNote":"Attribution links to the public repository or creator profile. Creators can claim the listing to update ownership signals."},"stats":{"stars":2874,"forks":82,"verified_installs":0,"successful_runs":0,"total_outcomes":0,"rating":0,"review_count":0,"quality_score":60.09},"quality":{"score":94,"tier":"excellent","label":"Excellent","summary":"High-confidence pick with strong adoption and healthy maintenance signals.","signals":[{"label":"GitHub stars","value":"2.9K","tone":"positive"},{"label":"Freshness","value":"Today","tone":"positive"},{"label":"Install ready","value":"Yes","tone":"positive"},{"label":"License","value":"MIT","tone":"neutral"}],"warnings":[]},"trust":{"version":"trust-score-v5","score":71,"base_score":79,"outcome_confidence":0,"tier":"review","label":"Sandbox only","summary":"Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.","recommendedAction":"Run only in a sandbox and compare close alternatives before using it for real work.","decision":{"install_policy":"human_review_before_install","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["71/100 Trust Score v5","79/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","Review before production"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":86,"weight":0.13,"status":"pass","detail":"2.9K GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":77,"weight":0.08,"status":"info","detail":"2.9K stars, 82 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"Pushed today"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":78,"weight":0.14,"status":"info","detail":"Public metadata needs stronger README/SKILL.md context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":64,"weight":0.12,"status":"info","detail":"command execution surface, network or browser surface"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add humanlayer/skills --skill narrow-react-prop-types"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":48,"weight":0.07,"status":"warn","detail":"shell or command execution, filesystem or document access"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types"},{"id":"review_status","label":"Review status","score":88,"weight":0.05,"status":"pass","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"pass","label":"GitHub adoption","detail":"2.9K GitHub stars"},{"status":"info","label":"Stars/forks activity","detail":"2.9K stars, 82 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"Pushed today"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"info","label":"README/SKILL.md completeness","detail":"Public metadata needs stronger README/SKILL.md context"},{"status":"info","label":"Dependency/runtime risk","detail":"command execution surface, network or browser surface"},{"status":"pass","label":"Install availability","detail":"npx skills add humanlayer/skills --skill narrow-react-prop-types"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"warn","label":"Permission surface","detail":"shell or command execution, filesystem or document access"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types"},{"status":"pass","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Meaningful GitHub adoption signal","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"2.9K GitHub stars","repoActivity":"2.9K stars, 82 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","install":"npx skills add humanlayer/skills --skill narrow-react-prop-types","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"human_review_before_install"},"installReadiness":{"ready":true,"command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","Pushed today","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v4","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms","source_version"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["developer-tools","react","typescript","refactoring","code-quality","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","trust_score":71,"trust_version":"trust-score-v5","risk_level":"medium","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["developer-tools","react","typescript","refactoring","code-quality","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"knownRisks":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":79,"tier":"strong","label":"Strong shortlist","summary":"Good trust signals with a few areas worth checking before rollout."}}},"trust_score_v5":{"version":"trust-score-v5","score":71,"base_score":79,"outcome_confidence":0,"tier":"review","label":"Sandbox only","summary":"Useful candidate with missing or mixed trust signals. Keep it in an isolated workspace until the outcome loop proves task fit.","recommendedAction":"Run only in a sandbox and compare close alternatives before using it for real work.","decision":{"install_policy":"human_review_before_install","auto_install_allowed":false,"human_review_required":true,"sandbox_first":true,"agent_action":"Compare alternatives before installing.","reasoning":["71/100 Trust Score v5","79/100 Trust Score v4 baseline","Needs more real agent outcomes before unattended install","Install path is available","Review before production"],"review_required_when":["The workspace contains production secrets, payments, private customer data, or irreversible actions.","The install command requests shell, network, credential, database, or broad filesystem access.","Outcome evidence is missing, recently failed, or required human review.","Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"]},"dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":86,"weight":0.13,"status":"pass","detail":"2.9K GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":77,"weight":0.08,"status":"info","detail":"2.9K stars, 82 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"Pushed today"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":78,"weight":0.14,"status":"info","detail":"Public metadata needs stronger README/SKILL.md context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":64,"weight":0.12,"status":"info","detail":"command execution surface, network or browser surface"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add humanlayer/skills --skill narrow-react-prop-types"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":48,"weight":0.07,"status":"warn","detail":"shell or command execution, filesystem or document access"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types"},{"id":"review_status","label":"Review status","score":88,"weight":0.05,"status":"pass","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"pass","label":"GitHub adoption","detail":"2.9K GitHub stars"},{"status":"info","label":"Stars/forks activity","detail":"2.9K stars, 82 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"Pushed today"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"info","label":"README/SKILL.md completeness","detail":"Public metadata needs stronger README/SKILL.md context"},{"status":"info","label":"Dependency/runtime risk","detail":"command execution surface, network or browser surface"},{"status":"pass","label":"Install availability","detail":"npx skills add humanlayer/skills --skill narrow-react-prop-types"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"warn","label":"Permission surface","detail":"shell or command execution, filesystem or document access"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types"},{"status":"pass","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Meaningful GitHub adoption signal","Install command has no obvious high-risk pattern","Outcome loop is ready but needs first real agent run"],"warnings":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access","No real agent outcome reports yet","Human review required before unattended installation"],"evidence":{"stars":"2.9K GitHub stars","repoActivity":"2.9K stars, 82 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","install":"npx skills add humanlayer/skills --skill narrow-react-prop-types","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet","agentProvenScore":0,"outcomeConfidence":"0%","installPolicy":"human_review_before_install"},"installReadiness":{"ready":true,"command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","Pushed today","Trust Score v5 requires review or sandbox-only use before install."]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Compare alternatives before installing."},"outcome_loop":{"version":"openagentskill-agent-outcome-v4","required_after_install":true,"endpoint":"/api/agent/outcome","method":"POST","event_id_source":"feedback.event_id, install_receipt.resolve_event_id, or decision_packet.outcome_feedback.event_id","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"required_fields":["event_id","skill_slug","task"],"quality_fields":["task_success","output_quality","error_type","human_review_required","used_in_production","workspace","evidence_url","time_to_useful_ms","source_version"],"ranking_inputs_updated":["Trust Score v5 outcome confidence","Agent Proven Score","Resolve ranking task-fit evidence","Skill detail machine-readable metadata","Outcome leaderboard"]},"agent_contract":{"suited_tasks":["developer-tools","react","typescript","refactoring","code-quality","agent-skill"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"install_command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","trust_score":71,"trust_version":"trust-score-v5","risk_level":"medium","do_not_use_when":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"before_install":["Read the audit page and machine-readable metadata.","Confirm the install command, license, and permission surface fit the workspace.","Get explicit human approval or choose an alternative before installing."],"after_run":["Report the outcome to /api/agent/outcome using the resolve event id.","Include output_quality, workspace, human_review_required, and evidence_url when available.","Re-resolve before broad production rollout."]},"bestFor":["developer-tools","react","typescript","refactoring","code-quality","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"knownRisks":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"],"backward_compatible":{"trust_score_v4":{"version":"trust-score-v4","score":79,"tier":"strong","label":"Strong shortlist","summary":"Good trust signals with a few areas worth checking before rollout."}}},"trust_score_v4":{"version":"trust-score-v4","score":79,"tier":"strong","label":"Strong shortlist","summary":"Good trust signals with a few areas worth checking before rollout.","recommendedAction":"Test in a sandbox workflow and compare its install path with close alternatives.","dimensions":[{"id":"github_adoption","label":"GitHub adoption","score":86,"weight":0.13,"status":"pass","detail":"2.9K GitHub stars"},{"id":"repo_activity","label":"Stars/forks activity","score":77,"weight":0.08,"status":"info","detail":"2.9K stars, 82 forks; issue activity unavailable in current metadata"},{"id":"maintenance","label":"Recent maintenance","score":100,"weight":0.14,"status":"pass","detail":"Pushed today"},{"id":"license","label":"License clarity","score":86,"weight":0.09,"status":"pass","detail":"MIT"},{"id":"documentation","label":"README/SKILL.md completeness","score":78,"weight":0.14,"status":"info","detail":"Public metadata needs stronger README/SKILL.md context"},{"id":"dependency_risk","label":"Dependency/runtime risk","score":64,"weight":0.12,"status":"info","detail":"command execution surface, network or browser surface"},{"id":"installability","label":"Install availability","score":92,"weight":0.1,"status":"pass","detail":"npx skills add humanlayer/skills --skill narrow-react-prop-types"},{"id":"install_safety","label":"Install command safety","score":92,"weight":0.1,"status":"pass","detail":"standard package or runtime install path"},{"id":"permission_surface","label":"Permission surface","score":48,"weight":0.07,"status":"warn","detail":"shell or command execution, filesystem or document access"},{"id":"repository","label":"Repository evidence","score":86,"weight":0.04,"status":"pass","detail":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types"},{"id":"review_status","label":"Review status","score":88,"weight":0.05,"status":"pass","detail":"AI review data available"},{"id":"agent_outcomes","label":"Agent Proven outcomes","score":54,"weight":0.13,"status":"info","detail":"No agent outcome data yet"}],"checks":[{"status":"pass","label":"GitHub adoption","detail":"2.9K GitHub stars"},{"status":"info","label":"Stars/forks activity","detail":"2.9K stars, 82 forks; issue activity unavailable in current metadata"},{"status":"pass","label":"Recent maintenance","detail":"Pushed today"},{"status":"pass","label":"License clarity","detail":"MIT"},{"status":"info","label":"README/SKILL.md completeness","detail":"Public metadata needs stronger README/SKILL.md context"},{"status":"info","label":"Dependency/runtime risk","detail":"command execution surface, network or browser surface"},{"status":"pass","label":"Install availability","detail":"npx skills add humanlayer/skills --skill narrow-react-prop-types"},{"status":"pass","label":"Install command safety","detail":"standard package or runtime install path"},{"status":"warn","label":"Permission surface","detail":"shell or command execution, filesystem or document access"},{"status":"pass","label":"Repository evidence","detail":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types"},{"status":"pass","label":"Review status","detail":"AI review data available"},{"status":"info","label":"Agent Proven outcomes","detail":"No agent outcome data yet"},{"status":"warn","label":"Ownership","detail":"No approved owner claim yet"},{"status":"info","label":"OpenAgentSkill usage","detail":"No local usage activity yet"},{"status":"info","label":"Agent outcomes","detail":"No agent outcome data yet"}],"strengths":["AI review approved","Install path is available","Repository evidence is available","Recently maintained repository","Meaningful GitHub adoption signal","Install command has no obvious high-risk pattern"],"warnings":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"],"evidence":{"stars":"2.9K GitHub stars","repoActivity":"2.9K stars, 82 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","install":"npx skills add humanlayer/skills --skill narrow-react-prop-types","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet"},"installReadiness":{"ready":true,"command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","policy":"human_review_before_install","label":"Human review before install","notes":["Install path is available","Repository evidence is available","License is declared","No Agent Proven outcome evidence yet","Pushed today"]},"agentCompatibility":["Codex","Claude Code","Cursor","OpenAgentSkill CLI"],"riskSummary":{"level":"medium","label":"Review before production","notes":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"outcomeEvidence":{"total":0,"successes":0,"failures":0,"notRelevant":0,"successRate":null,"installAttempts":0,"riskBlocked":0,"setupRequired":0,"installSuccessRate":null,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"recentSuccessRate":null,"recentFailureRate":null,"uniqueAgents":0,"agentProvenScore":0,"agentProvenLabel":"Needs first agent run","lastOutcomeAt":null,"label":"No agent outcome data yet"},"autoInstall":{"allowed":false,"sandboxRequired":true,"policy":"human_review_before_install","reason":"Human review or sandbox validation is required before automatic installation."},"bestFor":["developer-tools","react","typescript","refactoring","code-quality","agent-skill"],"doNotUseFor":["Production credentials, payments, or irreversible account changes without explicit human review","Sensitive private data before reviewing repository code, license, and permission surface","Automatic installation in a production workspace"],"knownRisks":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"outcome_stats":null,"safety":{"score":60,"level":"review_before_install","label":"Review before install","safety_tier":{"tier":"reviewed","label":"Reviewed with permission notes","badge":"REVIEWED","summary":"Usable candidate, but the agent should surface permission and audit notes before installation.","recommended_action":"Require human approval before installing into a real workspace.","auto_install_policy":"review","reasons":["High-risk permission hints: Shell or command execution","60/100 agent safety score"]},"auto_install_allowed":false,"human_review_required":true,"blocked":false,"audit_risk":"safe_to_try","permission_hints":[{"id":"shell","label":"Shell or command execution","reason":"Skill metadata references terminal, CLI, shell, subprocess, or command execution workflows.","severity":"high"},{"id":"network","label":"Network access","reason":"Skill likely fetches remote pages, APIs, repositories, or external services.","severity":"medium"},{"id":"filesystem","label":"Filesystem access","reason":"Skill may read or write project files, documents, generated artifacts, or local workspace state.","severity":"medium"}],"policy_warnings":["High-risk permission hints: Shell or command execution","Permission surface may require sandboxing"],"constraints_applied":{"max_risk":"medium","needs_install_command":true,"min_stars":0}},"safety_gate":{"tier":"reviewed","label":"Reviewed with permission notes","badge":"REVIEWED","auto_install_policy":"review","auto_install_allowed":false,"blocked":false,"human_review_required":true,"recommended_action":"Require human approval before installing into a real workspace.","reasons":["High-risk permission hints: Shell or command execution","60/100 agent safety score"]},"eval":{"version":"openagentskill-skill-eval-v1","status":"failed","score":82,"risk_level":"high","decision":{"recommendation":"do_not_auto_install","reason":"Permission surface: shell or command execution, filesystem or document access","auto_install_allowed":false,"policy":"block","human_review_required":true},"blockers":["Permission surface: shell or command execution, filesystem or document access"],"warnings":["Trust score: Good trust signals with a few areas worth checking before rollout.","Agent safety gate: Usable candidate, but the agent should surface permission and audit notes before installation.","README/SKILL.md completeness: Public metadata needs stronger README/SKILL.md context","High-risk permission hints: Shell or command execution","Permission surface may require sandboxing","Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"],"validation_plan":["Inspect repository, README/SKILL.md, license, and recent commits before production use.","Install in an isolated workspace or sandbox with no production secrets available.","Run the smallest representative task and record files touched, commands run, network access, and outputs.","Compare the selected skill against at least one alternative when the eval status is review or failed.","Promote only after the agent reports a successful verification result and unresolved warnings are accepted."],"checks":[{"id":"task_fit","label":"Task fit","status":"pass","score":94,"required_for_auto_install":true,"detail":"Task wording matches this skill metadata.","evidence":["Evaluate narrow-react-prop-types before installing it in an agent workflow","developer-tools","GitHub automation workflows; Claude Code teams; teams that value GitHub adoption signals"]},{"id":"install_path","label":"Install path","status":"pass","score":92,"required_for_auto_install":true,"detail":"Install handoff is available.","evidence":["npx skills add humanlayer/skills --skill narrow-react-prop-types"]},{"id":"install_safety","label":"Install command safety","status":"pass","score":92,"required_for_auto_install":true,"detail":"standard package or runtime install path","evidence":["npx skills add humanlayer/skills --skill narrow-react-prop-types"]},{"id":"trust_score","label":"Trust score","status":"warn","score":79,"required_for_auto_install":true,"detail":"Good trust signals with a few areas worth checking before rollout.","evidence":["Strong shortlist","2.9K GitHub stars","MIT"]},{"id":"audit_score","label":"Audit score","status":"pass","score":88,"required_for_auto_install":true,"detail":"Safe to try","evidence":["Permission surface may require sandboxing"]},{"id":"agent_safety_gate","label":"Agent safety gate","status":"warn","score":60,"required_for_auto_install":true,"detail":"Usable candidate, but the agent should surface permission and audit notes before installation.","evidence":["Require human approval before installing into a real workspace.","High-risk permission hints: Shell or command execution"]},{"id":"readme_skillmd_completeness","label":"README/SKILL.md completeness","status":"warn","score":78,"required_for_auto_install":false,"detail":"Public metadata needs stronger README/SKILL.md context","evidence":["Usable metadata, review docs"]},{"id":"license_clarity","label":"License clarity","status":"pass","score":86,"required_for_auto_install":true,"detail":"MIT","evidence":["MIT"]},{"id":"recent_maintenance","label":"Recent maintenance","status":"pass","score":100,"required_for_auto_install":false,"detail":"Pushed today","evidence":["Pushed today"]},{"id":"permission_surface","label":"Permission surface","status":"fail","score":48,"required_for_auto_install":true,"detail":"shell or command execution, filesystem or document access","evidence":["Shell or command execution: high","Network access: medium","Filesystem access: medium"]},{"id":"alternatives","label":"Alternatives available","status":"info","score":55,"required_for_auto_install":false,"detail":"No close alternatives were found in the current shortlist.","evidence":[]}],"endpoints":{"web":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types/evals","api":"/api/agent/evals?slug=humanlayer-skills-narrow-react-prop-types","text":"/api/agent/evals?slug=humanlayer-skills-narrow-react-prop-types&format=text"}},"agent_readable_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"humanlayer-skills-narrow-react-prop-types","name":"narrow-react-prop-types","description":"narrow React component prop types to match live code paths","category":"developer-tools","url":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","github_repo":"humanlayer/skills"},"suited_tasks":["GitHub automation workflows","Claude Code teams","teams that value GitHub adoption signals","Inspect repository metadata","Compare code changes","Write concise engineering summaries","Inspect source files","Explain architecture"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","CLI"],"install":{"command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.3.0/openagentskill-0.3.0.tgz add humanlayer-skills-narrow-react-prop-types"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"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."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"narrow-react-prop-types\" as a Claude Code skill from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. 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\":\"claude-code\",\"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."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"narrow-react-prop-types\" from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. 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\":\"cursor\",\"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."}],"handoff_url":"https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/humanlayer-skills-narrow-react-prop-types"},"trust":{"score":79,"label":"Strong shortlist","version":"trust-score-v4","install_policy":"human_review_before_install","evidence":{"stars":"2.9K GitHub stars","repoActivity":"2.9K stars, 82 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","install":"npx skills add humanlayer/skills --skill narrow-react-prop-types","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["developer-tools","react","typescript","refactoring","code-quality","agent-skill"],"known_risks":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":88,"risk_level":"safe_to_try","risk_label":"Safe to try","warnings":["Permission surface may require sandboxing","Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"safety_gate":{"tier":"reviewed","label":"Reviewed with permission notes","auto_install_policy":"review","auto_install_allowed":false,"human_review_required":true,"blocked":false,"recommended_action":"Require human approval before installing into a real workspace."},"quality":{"score":94,"label":"Excellent"},"supply":{"track":"Coding and developer agents","scenario":"GitHub automation","maintenance":"Pushed today","risk":"Safe to try"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","high-compliance environments without internal security review","No OpenAgentSkill engagement data yet","High-risk permission hints: Shell or command execution","Permission surface may require sandboxing","Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access","Production credentials, payments, or irreversible account changes without explicit human review"],"agent_contract":{"task_input":"Use narrow-react-prop-types in an agent workflow","recommended_action":"Require human approval before installing into a real workspace.","install_policy":"review","minimum_review_before_use":["Trust: 79/100 Strong shortlist","Audit: 88/100 Safe to try","Safety: 60/100 Review before install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"humanlayer-skills-narrow-react-prop-types (narrow-react-prop-types)","install_command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","risk_summary":"Safe to try; Reviewed with permission notes; Review before production","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"humanlayer-skills-narrow-react-prop-types","task":"Use narrow-react-prop-types in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types","api":"https://www.openagentskill.com/api/agent/skills/humanlayer-skills-narrow-react-prop-types","audit":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=humanlayer-skills-narrow-react-prop-types&task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install","manifest":"https://www.openagentskill.com/api/registry/manifest/humanlayer-skills-narrow-react-prop-types"}},"machine_metadata":{"version":"openagentskill-agent-metadata-v2","skill":{"slug":"humanlayer-skills-narrow-react-prop-types","name":"narrow-react-prop-types","description":"narrow React component prop types to match live code paths","category":"developer-tools","url":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","github_repo":"humanlayer/skills"},"suited_tasks":["GitHub automation workflows","Claude Code teams","teams that value GitHub adoption signals","Inspect repository metadata","Compare code changes","Write concise engineering summaries","Inspect source files","Explain architecture"],"suited_agents":["Codex","Claude Code","Cursor","OpenAgentSkill CLI","CLI"],"install":{"command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","ready":true,"targets":[{"id":"openagentskill-cli","label":"CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.3.0/openagentskill-0.3.0.tgz add humanlayer-skills-narrow-react-prop-types"},{"id":"codex","label":"Codex","kind":"agent-prompt","value":"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."},{"id":"claude-code","label":"Claude Code","kind":"agent-prompt","value":"Add \"narrow-react-prop-types\" as a Claude Code skill from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. 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\":\"claude-code\",\"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."},{"id":"cursor","label":"Cursor","kind":"agent-prompt","value":"Turn \"narrow-react-prop-types\" from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. 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\":\"cursor\",\"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."}],"handoff_url":"https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install","manifest_url":"https://www.openagentskill.com/api/registry/manifest/humanlayer-skills-narrow-react-prop-types"},"trust":{"score":79,"label":"Strong shortlist","version":"trust-score-v4","install_policy":"human_review_before_install","evidence":{"stars":"2.9K GitHub stars","repoActivity":"2.9K stars, 82 forks","lastPushed":"Pushed today","license":"MIT","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","install":"npx skills add humanlayer/skills --skill narrow-react-prop-types","installSafety":"standard package or runtime install path","permissionSurface":"shell or command execution, filesystem or document access","documentation":"Usable metadata, review docs","agentOutcomes":"No agent outcome data yet"},"outcome_evidence":{"total":0,"successes":0,"failures":0,"not_relevant":0,"success_rate":null,"recent_success_rate":null,"recent_failure_rate":null,"install_attempts":0,"install_success_rate":null,"risk_blocked":0,"setup_required":0,"avg_output_quality":null,"production_outcomes":0,"last_outcome_at":null,"label":"No agent outcome data yet"},"auto_install":{"allowed":false,"sandbox_required":true,"reason":"Human review or sandbox validation is required before automatic installation."},"best_for":["developer-tools","react","typescript","refactoring","code-quality","agent-skill"],"known_risks":["Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"agent_proven":{"version":"agent-proven-v1","score":0,"tier":"unproven","label":"Needs first agent run","summary":"No agent outcome reports yet. Use Resolve, run one narrow sandbox task, then report the result.","metrics":{"totalOutcomes":0,"successfulOutcomes":0,"failedOutcomes":0,"installAttempts":0,"installSuccessRate":null,"successRate":null,"recentSuccessRate":null,"recentFailureRate":null,"riskBlocked":0,"setupRequired":0,"notRelevant":0,"avgOutputQuality":null,"avgTimeToUsefulMs":null,"productionOutcomes":0,"humanReviewRequired":0,"uniqueAgents":0,"lastOutcomeAt":null},"signals":[],"penalties":["No real agent outcome evidence yet"]},"audit":{"score":88,"risk_level":"safe_to_try","risk_label":"Safe to try","warnings":["Permission surface may require sandboxing","Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"safety_gate":{"tier":"reviewed","label":"Reviewed with permission notes","auto_install_policy":"review","auto_install_allowed":false,"human_review_required":true,"blocked":false,"recommended_action":"Require human approval before installing into a real workspace."},"quality":{"score":94,"label":"Excellent"},"supply":{"track":"Coding and developer agents","scenario":"GitHub automation","maintenance":"Pushed today","risk":"Safe to try"},"alternative_skills":[],"do_not_use_when":["teams that need a vendor-supported SLA","high-compliance environments without internal security review","No OpenAgentSkill engagement data yet","High-risk permission hints: Shell or command execution","Permission surface may require sandboxing","Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access","Production credentials, payments, or irreversible account changes without explicit human review"],"agent_contract":{"task_input":"Use narrow-react-prop-types in an agent workflow","recommended_action":"Require human approval before installing into a real workspace.","install_policy":"review","minimum_review_before_use":["Trust: 79/100 Strong shortlist","Audit: 88/100 Safe to try","Safety: 60/100 Review before install","Review repository, license, install command, and permission surface before production use."],"expected_agent_output":{"selected_skill":"humanlayer-skills-narrow-react-prop-types (narrow-react-prop-types)","install_command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","risk_summary":"Safe to try; Reviewed with permission notes; Review before production","verification_result":"Report the smallest successful task, files touched, warnings, and any missing setup."}},"outcome_feedback":{"endpoint":"https://www.openagentskill.com/api/agent/outcome","method":"POST","requires_resolve_event_id":true,"event_id_source":"Use install_receipt.outcome_feedback.event_id or feedback.event_id returned by /api/agent/resolve for the current task.","expected_outcomes":["success","failed","not_relevant","blocked_by_risk","setup_required"],"payload_template":{"event_id":"<install_receipt.outcome_feedback.event_id or feedback.event_id from /api/agent/resolve>","skill_slug":"humanlayer-skills-narrow-react-prop-types","task":"Use narrow-react-prop-types in an agent workflow","agent":"codex","outcome":"success","install_used":true,"risk_blocked":false,"setup_required":false,"task_success":true,"output_quality":4,"error_type":null,"human_review_required":false,"workspace":"sandbox","time_to_useful_ms":120000,"notes":"Report the smallest successful task, setup friction, files touched, and risk notes."}},"endpoints":{"web":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types","api":"https://www.openagentskill.com/api/agent/skills/humanlayer-skills-narrow-react-prop-types","audit":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types/audit","eval":"https://www.openagentskill.com/api/agent/evals?slug=humanlayer-skills-narrow-react-prop-types&task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&max_risk=medium","resolve":"https://www.openagentskill.com/api/agent/resolve?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&agent=codex&max_risk=medium","receipt":"https://www.openagentskill.com/api/agent/receipt?task=Use%20narrow-react-prop-types%20in%20an%20agent%20workflow&agent=codex&max_risk=medium&format=text","install":"https://www.openagentskill.com/api/skills/humanlayer-skills-narrow-react-prop-types/install","manifest":"https://www.openagentskill.com/api/registry/manifest/humanlayer-skills-narrow-react-prop-types"}},"supply_profile":{"track":{"slug":"coding","label":"Coding and developer agents","shortLabel":"Coding","description":"Code review, repo analysis, testing, CI, GitHub, DevOps, and developer workflow skills."},"scenario":{"label":"GitHub automation","description":"I need my agent to triage GitHub issues, review pull requests, and summarize repository changes.","useCases":[{"slug":"github-automation","title":"GitHub automation"},{"slug":"coding-agents","title":"Coding agents"},{"slug":"browser-automation","title":"Browser automation"}]},"applicableAgents":["Claude Code","CLI","Codex","Cursor"],"install":{"ready":true,"command":"npx skills add humanlayer/skills --skill narrow-react-prop-types","primaryTarget":"CLI","targetCount":4},"githubQuality":{"stars":2874,"starsLabel":"2.9K","forks":82,"license":"MIT","qualityScore":94,"trustScore":79,"auditScore":88},"maintenance":{"status":"fresh","label":"Pushed today","daysSincePush":0,"lastPushedAt":"2026-09-06T09:26:43+00:00"},"risk":{"level":"safe_to_try","label":"Safe to try","requiresReview":true,"notes":["Permission surface may require sandboxing","Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"coverageTags":["Coding","GitHub automation","developer-tools","react","typescript","refactoring","code-quality","agent-skill"]},"audit":{"audit_score":88,"risk_level":"safe_to_try","risk_label":"Safe to try","quality_score":94,"trust_score":79,"maintenance_score":100,"security_score":81,"install_score":92,"warnings":["Permission surface may require sandboxing","Permission surface needs review: shell or command execution, filesystem or document access","Permission surface: shell or command execution, filesystem or document access"]},"quality_signals":{"model":"v2","star_score":24.21,"usage_score":0,"review_score":13.88,"metadata_score":7,"freshness_score":15},"platforms":["Claude Code"],"use_cases":[{"slug":"github-automation","title":"GitHub automation","url":"https://www.openagentskill.com/use-cases/github-automation"},{"slug":"coding-agents","title":"Coding agents","url":"https://www.openagentskill.com/use-cases/coding-agents"},{"slug":"browser-automation","title":"Browser automation","url":"https://www.openagentskill.com/use-cases/browser-automation"},{"slug":"research-agents","title":"Research agents","url":"https://www.openagentskill.com/use-cases/research-agents"}],"stacks":[{"slug":"coding-review-agent","title":"Coding review agent","url":"https://www.openagentskill.com/collections/coding-review-agent"},{"slug":"browser-qa-agent","title":"Browser QA agent","url":"https://www.openagentskill.com/collections/browser-qa-agent"},{"slug":"research-report-agent","title":"Research report agent","url":"https://www.openagentskill.com/collections/research-report-agent"}],"install":"npx skills add humanlayer/skills --skill narrow-react-prop-types","install_targets":[{"id":"openagentskill-cli","label":"CLI","title":"OpenAgentSkill CLI","kind":"command","value":"npx --yes https://github.com/Leon-Drq/openagentskill/releases/download/cli-v0.3.0/openagentskill-0.3.0.tgz add humanlayer-skills-narrow-react-prop-types","description":"Resolve policy, run the source installer safely, and report a verified install receipt.","copyLabel":"Copy command"},{"id":"codex","label":"Codex","title":"Codex install prompt","kind":"agent-prompt","value":"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.","description":"Give Codex a repo-aware install prompt when the skill is not available through a local CLI.","copyLabel":"Copy prompt"},{"id":"claude-code","label":"Claude Code","title":"Claude Code skill prompt","kind":"agent-prompt","value":"Add \"narrow-react-prop-types\" as a Claude Code skill from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types. Inspect the skill instructions, place the reusable skill files in the appropriate local skills location for this project, and report the activation steps. 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\":\"claude-code\",\"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.","description":"Use this prompt to ask Claude Code to add the skill and explain the local activation steps.","copyLabel":"Copy prompt"},{"id":"cursor","label":"Cursor","title":"Cursor rule prompt","kind":"agent-prompt","value":"Turn \"narrow-react-prop-types\" from https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types into a reusable Cursor project rule or agent instruction. Preserve the core workflow, adapt paths to this repo, and keep the rule scoped to tasks where it is relevant. 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\":\"cursor\",\"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.","description":"Use this when installing as Cursor project rules or reusable agent instructions.","copyLabel":"Copy prompt"}],"repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","github_repo":"humanlayer/skills","version":"1.0.0","license":"MIT","urls":{"web":"https://www.openagentskill.com/skills/humanlayer-skills-narrow-react-prop-types","repository":"https://github.com/humanlayer/skills/tree/main/plugins/narrow-react-prop-types/skills/narrow-react-prop-types","api":"/api/agent/skills/humanlayer-skills-narrow-react-prop-types","install_api":"/api/skills/humanlayer-skills-narrow-react-prop-types/install"},"meta":{"created_at":"2026-09-06T09:26:50.538397+00:00","updated_at":"2026-09-06T09:26:50.771318+00:00","agent_friendly":true}}