AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Component

skill-darkroomengineering-cc-settings-component · by darkroomengineering

Create UI component / widget / reusable piece. Triggers "create component", "new component", "add component", or naming a component (Button, Header, Card).

No reviews yet
0 installs
8 views
0.0% view→install

Install

$ agentstack add skill-darkroomengineering-cc-settings-component

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No 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.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-darkroomengineering-cc-settings-component)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
1mo ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

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 →
Are you the author of Component? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Create Darkroom Component

Create a React component following Darkroom conventions. Detect the stack first — satus (Next.js) and novus (React Router) have different conventions for client/server boundaries, image/link wrappers, and path aliases.

Step 1 — Detect stack

Read package.json:

  • dependencies.next present → Next.js / satus conventions
  • dependencies["react-router"] or devDependencies["@react-router/dev"] → React Router / novus conventions
  • Neither → ask user, or assume satus if unclear

Step 2 — Resolve target paths

| Stack | Component path | CSS module path | Image wrapper | Link wrapper | Path alias | |---|---|---|---|---|---| | satus (Next.js) | components//index.tsx | components//.module.css | import { Image } from '@/components/image' | import { Link } from '@/components/link' | @/ | | novus (React Router) | components//index.tsx | components//.module.css | Native ` (or project's wrapper if it exists) | import { Link } from 'react-router' | ~/` |

Step 3 — Emit template

satus / Next.js

// components//index.tsx
// 'use client' — only add if component needs:
// - useState, useEffect, or other hooks
// - Event handlers (onClick, onChange, etc.)
// - Browser APIs (window, document, etc.)

import s from './.module.css'

interface Props {
  children?: React.ReactNode
  className?: string
}

export function ({ children, className }: Props) {
  return (
    } ${className ?? ''}`}>
      {children}
    
  )
}

novus / React Router

// components//index.tsx
// React Router components are isomorphic — no directive needed.
// They run on server during SSR and on client after hydration.

import s from './.module.css'

interface Props {
  children?: React.ReactNode
  className?: string
}

export function ({ children, className }: Props) {
  return (
    } ${className ?? ''}`}>
      {children}
    
  )
}

CSS module (both stacks)

. {
  /* Component styles */
}

Before you start

If this component wraps or uses an external library (Radix, Framer Motion, GSAP, etc.):

  1. Fetch docs first — use Context7 MCP (mcp__context7__resolve-library-idget-library-docs) for the current API.
  2. Check version — run bun info before installing.

Never implement against external library APIs from memory.

Conventions (both stacks)

  1. CSS Module as s — always import as s for consistency.
  2. Props interface — define explicitly, include className for composition.
  3. Named export — use export function, not export default.
  4. No memoization — React Compiler handles it.

Conventions (satus only)

  1. Server Component by default — only add 'use client' if needed.
  2. Image wrapperimport { Image } from '@/components/image'.
  3. Link wrapperimport { Link } from '@/components/link'.

Conventions (novus only)

  1. Components are isomorphic — no 'use client' directive.
  2. Path alias is ~/, not @/.
  3. Linkimport { Link } from 'react-router' (declarative routing).
  4. Images — native ` with explicit width/height/fetchPriority`. No project-level wrapper unless the project added one.

Arguments

  • $ARGUMENTS — Component name (e.g., "Button", "Header")
  • --client flag (Next.js only) — Force client component

Example

User: "create a Button component"
→ detect stack → satus → creates components/button/index.tsx + button.module.css with @/-aliased imports

User: "create a Button component" (in novus repo)
→ detect stack → novus → creates same files but with ~/-aliased imports and no 'use client' directive

Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.