agentsclimarketplace

Scaffolding

Skill AvinashP/AgentsAtlas/skills/scaffolding

Generates boilerplate following project conventions. Use when asked to create a new component, module, service, or scaffold code.From its SKILL.md

Install
npx -y skills add AvinashP/AgentsAtlas --skill scaffolding

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 8 commands, including `find . -name "*.tsx" -path "*/components/*" | head -5` and 7 more.

SKILL.md

4.0 KB, 992 tokens by cl100k_base, as published. Nobody here has run it

Scaffolding Skill

Generate boilerplate code that matches existing project conventions.

Workflow

1. Detect Project Conventions

Before generating, find existing patterns:

# Find similar files
find . -name "*.tsx" -path "*/components/*" | head -5

# Check file structure
ls -la src/components/

# Look at existing code
cat src/components/Button/Button.tsx

Key conventions to detect:

  • File/folder structure (flat vs nested)
  • Naming conventions (PascalCase, camelCase, kebab-case)
  • Export style (default vs named)
  • Import style (relative vs aliases)
  • Test co-location (same folder or separate)
  • Styling approach (CSS Modules, styled-components, Tailwind)

2. Match Project Style

Always match:

AspectCheck for
File namingButton.tsx, button.tsx, Button.component.tsx
Folder structureButton/index.tsx or Button.tsx
Component stylefunction vs arrow, FC type vs implicit
Props definitioninterface vs type, inline vs separate
Exportsexport default vs export const
Test files.test.tsx, .spec.tsx, __tests__/

3. Generate Code

Include what's standard in the project:

  • Main file (component/module)
  • Types/interfaces (if TypeScript)
  • Test file (if tests exist nearby)
  • Index file (if using barrel exports)
  • Styles (if using CSS Modules)
  • Stories (if using Storybook)

4. Verify Output

Check generated code:

  • Follows detected conventions
  • Imports resolve correctly
  • TypeScript compiles (if applicable)
  • Matches similar files in project

Quick Reference

Scaffolding Commands

Ask for scaffolding like:

  • "Create a new UserProfile component"
  • "Scaffold a PaymentService"
  • "Generate a useAuth hook"
  • "Create a products API route"

What to Generate

TypeUsually Includes
React ComponentComponent file, types, test, styles, index
API RouteHandler, types, validation, test
ServiceClass/module, types, test
HookHook file, types, test
UtilityFunction file, types, test

File Detection Patterns

# Detect React style
grep -l "React.FC\|: FC<" src/**/*.tsx  # Typed FC
grep -l "function.*Props" src/**/*.tsx  # Function with props

# Detect test pattern
ls src/**/*.test.* 2>/dev/null  # Co-located
ls tests/ 2>/dev/null            # Separate folder

# Detect styling
ls src/**/*.module.css 2>/dev/null  # CSS Modules
grep "styled\." src/**/*.tsx         # styled-components
grep "className=" src/**/*.tsx       # Tailwind/CSS

Templates

Templates are available for common stacks:

Best Practices

Do:

  • Match existing patterns exactly
  • Include all files that similar modules have
  • Use the same folder structure
  • Copy import styles from nearby files

Don't:

  • Introduce new patterns
  • Add "improvements" to the template
  • Skip files that peers have (like tests)
  • Use different naming conventions

Example

Request: "Create a UserCard component"

Detection:

Existing components use:
- Folder structure: ComponentName/index.tsx
- Style: CSS Modules (ComponentName.module.css)
- Tests: ComponentName.test.tsx in same folder
- Types: Props interface in same file
- Exports: default export

Generated files:

src/components/UserCard/
├── index.tsx
├── UserCard.module.css
└── UserCard.test.tsx

index.tsx matches existing style:

import styles from './UserCard.module.css';

interface UserCardProps {
  name: string;
  email: string;
}

export default function UserCard({ name, email }: UserCardProps) {
  return (
    <div className={styles.container}>
      <h3 className={styles.name}>{name}</h3>
      <p className={styles.email}>{email}</p>
    </div>
  );
}

What ships with it: 3 files

28.0 KB alongside SKILL.md

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.