Crystal Forge Project Setup
This skill owns repo-level scaffolding only. Use
initialize-crystal-porting-project for upstream submodule bootstrap and
porting-to-crystal for implementation work.
Workflow
1. Inspect before editing
Check which of these already exist and reuse real project commands instead of inventing generic ones:
CLAUDE.mdAGENTS.mdREADME.mdCHANGELOG.md.gitignoredocs/Makefileor equivalent scripts
2. Create or tighten CLAUDE.md
Include only:
- Project name and one-line purpose
- Verified commands such as
install,update,format,lint,test - Links to the core docs
- A short principles section
- Concrete project conventions when they are real and repo-specific
For Crystal projects, prefer:
crystal tool format --check src spec
ameba src spec
crystal spec
3. Sync AGENTS.md
Point AGENTS.md at CLAUDE.md with a symlink when possible:
ln -sf CLAUDE.md AGENTS.md
4. Ensure core docs exist
Create concise starter docs only for missing files:
docs/architecture.mddocs/development.mddocs/coding-guidelines.mddocs/testing.mddocs/pr-workflow.md
Rules for content placement:
README.mddescribes what the project is and how to use it. It must include links to alldocs/*files. Do not put porting notes, upstream references, or implementation history in README — that goes indocs/development.md.docs/development.mdis where porting/upstream notes, project structure, and workflow details live — referenced from README via a link.
5. Normalize repo-local temp and ignore rules
- Keep generated scratch data under
./temp. - Ensure
.gitignoreignorestemp/and.crystal-cache/. - Do not ignore
docs/. - Use
templates.gitignoreas the baseline if a file is missing.
6. Ensure cleanup and lint config
Makefileshould exposecleanand remove./temp/*.- Crystal repos should also have:
.ameba.ymlfromtemplates.ameba.yml.rumdl.tomlfromtemplates.rumdl.toml
- Exclude
temp/from lint/format/documentation tooling where needed.
Verification
Confirm all of the following:
- Commands listed in
CLAUDE.mdexist. AGENTS.mdresolves toCLAUDE.md.- Doc links resolve.
- Repo policy text is not duplicated across multiple files.
temp/is ignored and the cleanup path is explicit.