Install
$ agentstack add skill-darkroomengineering-cc-settings-hook ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Create Custom Hook
Create a custom React hook following Darkroom conventions. The hook itself is stack-agnostic — what differs between satus and novus is the path alias.
Step 1 — Detect stack
Read package.json:
dependencies.next→ satus / Next.js (path alias@/, nolib/hooks/requires'use client'boundary)dependencies["react-router"]→ novus / React Router (path alias~/, components isomorphic)
Step 2 — Choose location
| Stack | Hook path | |---|---| | satus | lib/hooks/.ts | | novus | hooks/.ts (novus puts hooks/ at the project root) |
Confirm by checking the existing lib/hooks/ or hooks/ directory structure if either pattern is unclear from package.json alone.
Step 3 — Emit template
satus / Next.js
// lib/hooks/.ts
'use client'
import { useState, useEffect } from 'react'
interface UseOptions {
// Hook configuration options
}
interface UseReturn {
// Return type definition
}
export function use(options?: UseOptions): UseReturn {
// Implementation
return {
// Return values
}
}
novus / React Router
// hooks/.ts
// No 'use client' — RR components are isomorphic; the hook runs wherever
// it's called from. If the hook touches browser APIs, guard with
// `typeof window !== 'undefined'` or call from inside `useEffect`.
import { useState, useEffect } from 'react'
interface UseOptions {
// Hook configuration options
}
interface UseReturn {
// Return type definition
}
export function use(options?: UseOptions): UseReturn {
// Implementation
return {
// Return values
}
}
Conventions (both stacks)
- Type everything — options interface, return interface.
- Named export —
export function useX, not default. - Prefix with
use— React hook naming convention. - No memoization — React Compiler handles it automatically.
Stack-specific
| | satus | novus | |---|---|---| | Directive | 'use client' (hooks live in client boundary) | None (isomorphic) | | Browser API guard | Only runs after hydration anyway | Guard with typeof window or use useEffect | | Path alias | @/ | ~/ |
Before you start
If this hook uses an external library, fetch docs first:
- Use Context7 MCP (
mcp__context7__resolve-library-id→get-library-docs) for the current API. - Run
bun infoto check the latest version.
Consider Using Hamo
For common use cases, prefer hamo hooks (fetch hamo docs via Context7 first):
import { useWindowSize, useRect, useIntersectionObserver } from 'hamo'
Only create custom hooks when hamo doesn't cover the use case.
Example
User: "create a useLocalStorage hook" (in satus repo)
→ Creates lib/hooks/use-local-storage.ts with 'use client' directive
User: "create a useLocalStorage hook" (in novus repo)
→ Creates hooks/use-local-storage.ts, no directive, browser-API-guarded
Arguments
$ARGUMENTS— Hook name (e.g., "useAuth", "useLocalStorage")
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: darkroomengineering
- Source: darkroomengineering/cc-settings
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.