For bug reports, feature requests, or questions, please open a GitHub Issue first. Discuss in the issue before making code changes.
- Fork this repository
- Create a feature branch:
git checkout -b feature/my-feature - Commit your changes:
git commit -m "feat: add my feature" - Push to your fork:
git push origin feature/my-feature - Open a Pull Request
bin/ddalggak.js, bin/lib/setup.mjs, bin/lib/dispatch.mjs처럼 setup 또는 dispatch 동작을 바꾸는 PR은 반드시 npm test를 실행해 통과시켜야 합니다.
동작이 추가되거나 바뀌면 scripts/smoke.mjs에 스모크 케이스도 함께 추가하세요. CLI 변경 시점에 npm test 또는 scripts/smoke.mjs가 없다면, 해당 PR에서 테스트 스크립트와 스모크 하네스를 먼저 추가하거나 복구한 뒤 아래 절차를 따릅니다.
- 새 케이스가 실행할 명령과 기대 종료 코드를 정합니다.
- stdout/stderr에서 반드시 유지되어야 하는 핵심 문구를 검증합니다.
- 파일시스템을 바꾸는 setup 케이스는 임시
CLAUDE_HOME또는--target을 사용하고, 실제 사용자~/.claude를 건드리지 않습니다. - 실패 경로를 추가했다면 에러 메시지와 종료 코드도 함께 검증합니다.
- 마지막으로
npm test로 전체 스모크 케이스를 실행합니다.
.codex/skills/ddalggak/SKILL.md 또는 Codex skill metadata를 바꾸는 PR은 반드시 npm run verify:codex-skill을 실행해 통과시켜야 합니다.
verify:codex-skill은 현재 아래 계약을 확인합니다.
.codex/skills/ddalggak/SKILL.md가 존재합니다.- frontmatter에
name: ddalggak이 있습니다. - Claude primitive leftovers가 0건입니다.
package.json의files에.codex/가 포함되어 있습니다.- Codex와 Claude payload가 rendered evidence, analytics/privacy, knowledge extraction, self-created complexity guardrail, Quality Lens Router 같은 stable anchor를 유지합니다.
- Quality Lens Router Output이 applicable gate families, skipped gates, repo/product conventions를 기록하도록 유지합니다.
- CLI
SUBCOMMANDS, dispatchDOC_SECTION, Claude skill H2 heading이 같은 서브커맨드 계약을 가리킵니다.
Review 계약을 변경하는 PR은 npm run test:review-contract와 npm run verify:projections를 반드시 통과해야 합니다. Unicode credential/session 또는 private locator 경계를 변경했다면 npm run test:review-contract:exhaustive도 실행합니다.
package.json의 files나 package artifact 포함 범위를 바꾸는 PR은 아래 dry-run으로 실제 포함 대상을 확인합니다.
env npm_config_cache=/tmp/ddalggak-npm-cache npm pack --dry-run --ignore-scripts --loglevel=silent실제 release 또는 publish 실행은 maintainer confirmation이 필요한 별도 절차로 다룹니다.
Maintainer: @JeremyDev87