singular-init
Initialize singularskills in a project — create the workspace directory, choose which domains to activate and record the project configuration. Use when the user is starting to use singularskills in a
SKILL.mdskills/singular-init/SKILL.md
GitHubInit
Initialize the .singularskills/ directory for the current project. Set up the project configuration and choose which domains to activate.
Prerequisites
None — this is typically the first singularskills command you run in a new project.
Process
Check if
.singularskills/already exists:- If it exists, read
.singularskills/config.mdand show current configuration - Ask if the user wants to update the configuration, or only the
Stacksection ofAGENTS.md(step 4b) - If it doesn't exist, proceed with initialization
- If it exists, read
Ask the user:
- What is the project name?
- Which domains will you use? Present the full list:
- Design (component design with Figma integration)
- Research (Double Diamond discovery and validation)
- Development (plan, build, test, debug, review, ship)
- Marketing (RACE Framework campaigns)
- Branding (brand creation and compliance)
- Accessibility (WCAG-EM audits)
- Project Management (Scrum workflow)
- Coaching (domain-specific mentorship)
- Leadership (team development and management)
- Legal (contracts, compliance, governance)
Create the directory structure:
- Create
.singularskills/root directory - Create subdirectories for each selected domain
- Create
.singularskills/reports/for cross-domain reports
- Create
Write the project configuration:
- Write
.singularskills/config.mdwith:- Project name
- Active domains
- Date initialized
- Notes or goals (if the user provided any)
- Write
4b. Write the Stack section so the skills that build, test, lint, review or generate code know how this project is run. Take every value from the project's own files, never from a profile:
stack: frompackage.json(packageManager, and the versions of TypeScript, Next.js, React or other frameworks among its dependencies),Cargo.tomlwithrust-toolchain.toml(Rust toolchain and edition),pyproject.toml,go.modor the equivalentinstall,build,test,lint,format,typecheck,run: frompackage.jsonscripts, ajustfileor aMakefile. Forlintprefer the script that checks lint and format together (check,validate-style) over a barelint; forformattake only a variant that writes (format:fix,fmt,format --write) and leaveformatout otherwise; fortestprefer the script CI runs. Leave out any key you cannot read, so the profile supplies itrules: from the project's README, CONTRIBUTING or conventions file (a repo-conventions skill, aCLAUDE.mdrules section), as short imperatives; leave it out when the project states nonelayout: the top-level folders you see (for exampleapps/*,packages/*,crates/*,src/) and where tests liveprofile: bun-react-tswhenpackage.jsonhaspackageManagerstarting withbun@and bothnextandreactamong its dependencies;profile: rust-gpuiwhen a Cargo workspace member depends ongpui; otherwise noprofilekey- Keep the shape flat: every key is one line of plain text (
stack,layoutandrulesare free text, never nested mappings or lists), and only the keys named above (stack,profile,install,build,test,lint,format,typecheck,run,layout,rules) appear; putstackfirst - Write it as one fenced
yamlblock under a## Stackheading. Choose the file in this order: (1) ifAGENTS.mdorCLAUDE.mdalready has a## Stacksection, replace that section in place, in that file; (2) else ifCLAUDE.mdexists andAGENTS.mddoes not, write it intoCLAUDE.md; (3) else write it intoAGENTS.md, creating the file with the one-line intro "This project uses singularskills; the Stack section below tells its skills how to build, test and lint it." when it does not exist. Never createAGENTS.mdnext to an existingCLAUDE.mdjust for this section, and never leave two Stack sections across the two files.
- Suggest next steps:
- Based on selected domains, recommend which to start with
- Provide the first command to run
Output
The project configuration written to .singularskills/config.md and the ## Stack section written to AGENTS.md (or CLAUDE.md). Present the initialized structure and suggested next steps to the user.