pai-zero 0.7.15 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/pai.js +189 -20
- package/dist/bin/pai.js.map +1 -1
- package/dist/cli/index.js +189 -20
- package/dist/cli/index.js.map +1 -1
- package/package.json +1 -1
package/dist/bin/pai.js
CHANGED
|
@@ -614,6 +614,18 @@ This project uses PAI (Plugin-based AI) for structured AI development.
|
|
|
614
614
|
- **Config**: \`.pai/config.json\`
|
|
615
615
|
|
|
616
616
|
Run \`pai env status\` to check setup, \`pai evaluate\` for quality scoring.
|
|
617
|
+
|
|
618
|
+
### Global Rules
|
|
619
|
+
|
|
620
|
+
- **\uC2EC\uCE35 \uC778\uD130\uBDF0 \uC790\uB3D9 \uC218\uD589**: \uCEE8\uD14D\uC2A4\uD2B8\uAC00 \uBD80\uC871\uD558\uAC70\uB098 \uBAA8\uD638\uD55C \uACBD\uC6B0, AskUserQuestion \uB3C4\uAD6C\uB97C \uC0AC\uC6A9\uD558\uC5EC \uC2EC\uCE35 \uC778\uD130\uBDF0\uB97C \uC790\uB3D9\uC73C\uB85C \uC9C4\uD589\uD569\uB2C8\uB2E4. \uCD94\uCE21\uD558\uC9C0 \uB9D0\uACE0 \uBC18\uB4DC\uC2DC \uC9C8\uBB38\uD558\uC138\uC694.
|
|
621
|
+
- **Ideation \u2192 PRD \uD30C\uC774\uD504\uB77C\uC778**: \`/pai design\` \uC2E4\uD589 \uC2DC ideation.md \u2192 openspec.md \uC21C\uC11C\uB85C \uC2EC\uCE35 \uC778\uD130\uBDF0\uB97C \uD1B5\uD574 \uC791\uC131\uD569\uB2C8\uB2E4.
|
|
622
|
+
- **\uAE30\uC220 \uC81C\uC57D \uD30C\uC545**: \uCF54\uB4DC \uC0DD\uC131 \uC804 \uAE30\uC220\uC801 \uC81C\uC57D \uC0AC\uD56D\uC744 \uC2EC\uCE35 \uC778\uD130\uBDF0\uB85C \uD655\uC778\uD569\uB2C8\uB2E4.
|
|
623
|
+
- **\uD558\uB124\uC2A4 \uC5D4\uC9C0\uB2C8\uC5B4\uB9C1**: AI \uC5D0\uC774\uC804\uD2B8\uAC00 \uC548\uC804\uD558\uAC8C \uC791\uC5C5\uD560 \uC218 \uC788\uB3C4\uB85D \uD14C\uC2A4\uD2B8/\uAC80\uC99D \uD658\uACBD\uC744 \uAD6C\uC131\uD569\uB2C8\uB2E4.
|
|
624
|
+
- **Git \uCEE4\uBC0B \uADDC\uCE59**: \uC791\uC5C5 \uB2E8\uC704\uBCC4\uB85C \uC758\uBBF8 \uC788\uB294 \uCEE4\uBC0B \uBA54\uC2DC\uC9C0\uB97C \uC791\uC131\uD569\uB2C8\uB2E4.
|
|
625
|
+
|
|
626
|
+
### Contribution Guide
|
|
627
|
+
|
|
628
|
+
\uAE30\uC5EC\uC790\uB294 \`CONTRIBUTING.md\`\uB97C \uCC38\uACE0\uD558\uC138\uC694. \uC774 \uAC00\uC774\uB4DC\uB294 \`.claude/skills/\`\uC5D0 \uC2A4\uD0AC\uB85C \uB4F1\uB85D\uB418\uC5B4 \uC790\uB3D9 \uC801\uC6A9\uB429\uB2C8\uB2E4.
|
|
617
629
|
</pai>
|
|
618
630
|
`;
|
|
619
631
|
return {
|
|
@@ -888,30 +900,143 @@ async function provisionGitHub(ctx) {
|
|
|
888
900
|
`> \uB9C8\uC9C0\uB9C9 \uC5C5\uB370\uC774\uD2B8: ${now}`,
|
|
889
901
|
"",
|
|
890
902
|
"## \uC9C4\uD589 \uC911",
|
|
891
|
-
|
|
903
|
+
"- [ ] Ideation \uBB38\uC11C \uC791\uC131 \u2014 \uC2EC\uCE35 \uC778\uD130\uBDF0\uB97C \uD1B5\uD574 \uC544\uC774\uB514\uC5B4\uB97C \uAD6C\uCCB4\uD654 (\uB2F4\uB2F9: PAI > Design)",
|
|
892
904
|
"",
|
|
893
905
|
"## \uB2E4\uC74C \uB2E8\uACC4",
|
|
894
|
-
"- [ ] PRD \
|
|
906
|
+
"- [ ] Ideation \uAE30\uBC18 PRD \uC791\uC131 \u2014 \uC2EC\uCE35 \uC778\uD130\uBDF0\uB85C \uB9E5\uB77D/\uAE30\uC220 \uC81C\uC57D \uBCF4\uAC15",
|
|
907
|
+
"- [ ] \uD558\uB124\uC2A4 \uC5D4\uC9C0\uB2C8\uC5B4\uB9C1 \uAD6C\uC131 \uD655\uC778 \u2014 \uC5D0\uC774\uC804\uD2B8 \uC791\uC5C5 \uD658\uACBD \uAC80\uC99D",
|
|
908
|
+
"- [ ] AI \uCF54\uB4DC \uC0DD\uC131 \uC2DC\uC791",
|
|
895
909
|
"",
|
|
896
910
|
"## \uC644\uB8CC",
|
|
897
911
|
`- [x] \uD504\uB85C\uC81D\uD2B8 \uCD08\uAE30\uD654 (${now}) (\uB2F4\uB2F9: PAI > Environment)`,
|
|
898
912
|
"",
|
|
913
|
+
"## \uC791\uC5C5 \uD30C\uC774\uD504\uB77C\uC778",
|
|
914
|
+
"```",
|
|
915
|
+
"1. /pai design \u2192 Ideation \uC2EC\uCE35 \uC778\uD130\uBDF0 \u2192 docs/ideation.md \uC0DD\uC131",
|
|
916
|
+
"2. /pai design \u2192 PRD \uC2EC\uCE35 \uC778\uD130\uBDF0 \u2192 docs/openspec.md \uC791\uC131",
|
|
917
|
+
"3. /pai design \u2192 \uAE30\uC220 \uC81C\uC57D \uC2EC\uCE35 \uC778\uD130\uBDF0 \u2192 \uD558\uB124\uC2A4 \uC5D4\uC9C0\uB2C8\uC5B4\uB9C1 \uD655\uC778",
|
|
918
|
+
"4. AI \uCF54\uB4DC \uC0DD\uC131 \u2192 \uAC80\uC99D \u2192 \uD3C9\uAC00",
|
|
919
|
+
"```",
|
|
920
|
+
"",
|
|
899
921
|
"## \uBA54\uBAA8",
|
|
900
922
|
`- \uBAA8\uB4DC: ${ctx.mode}`,
|
|
901
|
-
"-
|
|
923
|
+
"- \uCEE8\uD14D\uC2A4\uD2B8\uAC00 \uBD80\uC871\uD558\uBA74 AI\uAC00 \uC790\uB3D9\uC73C\uB85C \uC2EC\uCE35 \uC778\uD130\uBDF0\uB97C \uC9C4\uD589\uD569\uB2C8\uB2E4"
|
|
924
|
+
].join("\n") + "\n");
|
|
925
|
+
}
|
|
926
|
+
const contribPath = join3(ctx.cwd, "CONTRIBUTING.md");
|
|
927
|
+
if (!await fs4.pathExists(contribPath)) {
|
|
928
|
+
await fs4.writeFile(contribPath, [
|
|
929
|
+
`# Contributing to ${ctx.projectName}`,
|
|
930
|
+
"",
|
|
931
|
+
"\uC774 \uD504\uB85C\uC81D\uD2B8\uC5D0 \uAE30\uC5EC\uD574 \uC8FC\uC154\uC11C \uAC10\uC0AC\uD569\uB2C8\uB2E4.",
|
|
932
|
+
"",
|
|
933
|
+
"## \uAC1C\uBC1C \uD658\uACBD \uC124\uC815",
|
|
934
|
+
"",
|
|
935
|
+
"```bash",
|
|
936
|
+
"git clone <repo-url>",
|
|
937
|
+
"cd " + ctx.projectName,
|
|
938
|
+
"npm install",
|
|
939
|
+
"```",
|
|
940
|
+
"",
|
|
941
|
+
"## \uBE0C\uB79C\uCE58 \uADDC\uCE59",
|
|
942
|
+
"",
|
|
943
|
+
"- `main` \u2014 \uC548\uC815 \uBC84\uC804",
|
|
944
|
+
"- `feat/<\uAE30\uB2A5\uBA85>` \u2014 \uC0C8 \uAE30\uB2A5 \uAC1C\uBC1C",
|
|
945
|
+
"- `fix/<\uC774\uC288\uBC88\uD638>` \u2014 \uBC84\uADF8 \uC218\uC815",
|
|
946
|
+
"",
|
|
947
|
+
"## \uCEE4\uBC0B \uBA54\uC2DC\uC9C0",
|
|
948
|
+
"",
|
|
949
|
+
"```",
|
|
950
|
+
"feat: \uC0C8 \uAE30\uB2A5 \uCD94\uAC00",
|
|
951
|
+
"fix: \uBC84\uADF8 \uC218\uC815",
|
|
952
|
+
"docs: \uBB38\uC11C \uC218\uC815",
|
|
953
|
+
"refactor: \uB9AC\uD329\uD1A0\uB9C1",
|
|
954
|
+
"test: \uD14C\uC2A4\uD2B8 \uCD94\uAC00/\uC218\uC815",
|
|
955
|
+
"```",
|
|
956
|
+
"",
|
|
957
|
+
"## PR \uD504\uB85C\uC138\uC2A4",
|
|
958
|
+
"",
|
|
959
|
+
"1. \uBE0C\uB79C\uCE58 \uC0DD\uC131 \u2192 \uC791\uC5C5 \u2192 \uCEE4\uBC0B",
|
|
960
|
+
"2. `npm test` \uB85C \uD14C\uC2A4\uD2B8 \uD1B5\uACFC \uD655\uC778",
|
|
961
|
+
"3. PR \uC0DD\uC131 \u2014 \uBCC0\uACBD \uC0AC\uD56D \uC694\uC57D \uC791\uC131",
|
|
962
|
+
"4. \uB9AC\uBDF0 \uD6C4 \uBA38\uC9C0",
|
|
963
|
+
"",
|
|
964
|
+
"## AI \uD611\uC5C5 \uADDC\uCE59",
|
|
965
|
+
"",
|
|
966
|
+
"- `CLAUDE.md` \uB97C \uC77D\uACE0 \uD504\uB85C\uC81D\uD2B8 \uCEE8\uD14D\uC2A4\uD2B8\uB97C \uD30C\uC545\uD558\uC138\uC694",
|
|
967
|
+
"- `/pai evaluate` \uB85C AI \uC900\uBE44\uB3C4\uB97C \uD655\uC778\uD558\uC138\uC694",
|
|
968
|
+
"- \uCEE8\uD14D\uC2A4\uD2B8\uAC00 \uBD80\uC871\uD558\uBA74 \uCD94\uCE21\uD558\uC9C0 \uB9D0\uACE0 \uC9C8\uBB38\uD558\uC138\uC694",
|
|
969
|
+
""
|
|
970
|
+
].join("\n") + "\n");
|
|
971
|
+
}
|
|
972
|
+
const contribSkillDir = join3(ctx.cwd, ".claude", "skills");
|
|
973
|
+
await fs4.ensureDir(contribSkillDir);
|
|
974
|
+
const contribSkillPath = join3(contribSkillDir, "contributing.md");
|
|
975
|
+
if (!await fs4.pathExists(contribSkillPath)) {
|
|
976
|
+
await fs4.writeFile(contribSkillPath, [
|
|
977
|
+
"---",
|
|
978
|
+
"name: contributing",
|
|
979
|
+
'description: "\uAE30\uC5EC\uC790 \uAC00\uC774\uB4DC \u2014 \uBE0C\uB79C\uCE58 \uADDC\uCE59, \uCEE4\uBC0B \uBA54\uC2DC\uC9C0, PR \uD504\uB85C\uC138\uC2A4 \uC790\uB3D9 \uC801\uC6A9"',
|
|
980
|
+
"---",
|
|
981
|
+
"",
|
|
982
|
+
"# Contributing Guide",
|
|
983
|
+
"",
|
|
984
|
+
"\uD504\uB85C\uC81D\uD2B8 \uAE30\uC5EC \uC2DC `CONTRIBUTING.md`\uC758 \uADDC\uCE59\uC744 \uC790\uB3D9\uC73C\uB85C \uC801\uC6A9\uD569\uB2C8\uB2E4.",
|
|
985
|
+
"",
|
|
986
|
+
"## \uC790\uB3D9 \uC801\uC6A9 \uADDC\uCE59",
|
|
987
|
+
"",
|
|
988
|
+
"1. **\uBE0C\uB79C\uCE58**: `feat/`, `fix/`, `docs/`, `refactor/`, `test/` \uC811\uB450\uC0AC \uC0AC\uC6A9",
|
|
989
|
+
"2. **\uCEE4\uBC0B**: `feat:`, `fix:`, `docs:`, `refactor:`, `test:` \uD615\uC2DD",
|
|
990
|
+
"3. **PR**: \uBCC0\uACBD \uC0AC\uD56D \uC694\uC57D \uD544\uC218",
|
|
991
|
+
"4. **\uD14C\uC2A4\uD2B8**: PR \uC804 `npm test` \uD1B5\uACFC \uD544\uC218",
|
|
992
|
+
"",
|
|
993
|
+
"## \uC791\uC5C5 \uC2DC \uD655\uC778",
|
|
994
|
+
"",
|
|
995
|
+
"- `CONTRIBUTING.md` \uB97C \uC77D\uACE0 \uADDC\uCE59\uC744 \uB530\uB974\uC138\uC694",
|
|
996
|
+
"- \uCEE4\uBC0B \uBA54\uC2DC\uC9C0\uAC00 \uADDC\uCE59\uC5D0 \uB9DE\uB294\uC9C0 \uD655\uC778\uD558\uC138\uC694",
|
|
997
|
+
"- PR \uC0DD\uC131 \uC2DC \uBCC0\uACBD \uC0AC\uD56D\uC744 \uC694\uC57D\uD558\uC138\uC694",
|
|
998
|
+
""
|
|
902
999
|
].join("\n") + "\n");
|
|
903
1000
|
}
|
|
904
1001
|
const gitignorePath = join3(ctx.cwd, ".gitignore");
|
|
905
1002
|
if (!await fs4.pathExists(gitignorePath)) {
|
|
906
1003
|
await fs4.writeFile(gitignorePath, [
|
|
1004
|
+
"# Dependencies",
|
|
907
1005
|
"node_modules/",
|
|
1006
|
+
"",
|
|
1007
|
+
"# Environment",
|
|
1008
|
+
".env",
|
|
908
1009
|
".env.local",
|
|
909
1010
|
".env*.local",
|
|
1011
|
+
"",
|
|
1012
|
+
"# Build",
|
|
1013
|
+
"dist/",
|
|
1014
|
+
"build/",
|
|
1015
|
+
".next/",
|
|
1016
|
+
"out/",
|
|
1017
|
+
"",
|
|
1018
|
+
"# Services",
|
|
910
1019
|
".vercel",
|
|
911
1020
|
".supabase",
|
|
912
|
-
"
|
|
1021
|
+
"",
|
|
1022
|
+
"# OS",
|
|
913
1023
|
".DS_Store",
|
|
914
|
-
"Thumbs.db"
|
|
1024
|
+
"Thumbs.db",
|
|
1025
|
+
"",
|
|
1026
|
+
"# IDE",
|
|
1027
|
+
".idea/",
|
|
1028
|
+
".vscode/settings.json",
|
|
1029
|
+
"*.swp",
|
|
1030
|
+
"*.swo",
|
|
1031
|
+
"",
|
|
1032
|
+
"# PAI / OMC state",
|
|
1033
|
+
".omc/state/",
|
|
1034
|
+
".omc/sessions/",
|
|
1035
|
+
".omc/logs/",
|
|
1036
|
+
"",
|
|
1037
|
+
"# Logs",
|
|
1038
|
+
"*.log",
|
|
1039
|
+
"npm-debug.log*"
|
|
915
1040
|
].join("\n") + "\n");
|
|
916
1041
|
}
|
|
917
1042
|
}
|
|
@@ -1332,30 +1457,74 @@ PAI Doctor \u2014 \uD658\uACBD \uC9C4\uB2E8
|
|
|
1332
1457
|
`,
|
|
1333
1458
|
"design.md": `---
|
|
1334
1459
|
name: "PAI: Design"
|
|
1335
|
-
description: "
|
|
1460
|
+
description: "Ideation \u2192 PRD \u2192 \uD558\uB124\uC2A4 \uAD6C\uC131\uAE4C\uC9C0 \uC2EC\uCE35 \uC778\uD130\uBDF0 \uAE30\uBC18 \uC124\uACC4"
|
|
1336
1461
|
---
|
|
1337
1462
|
|
|
1338
|
-
# PAI \uC124\uACC4 \
|
|
1463
|
+
# PAI \uC124\uACC4 \u2014 \uC2EC\uCE35 \uC778\uD130\uBDF0 \uAE30\uBC18 \uD30C\uC774\uD504\uB77C\uC778
|
|
1339
1464
|
|
|
1340
1465
|
## \uC778\uC790: $ARGUMENTS
|
|
1341
|
-
- \uC778\uC790 \uC5C6\uC74C \
|
|
1466
|
+
- \uC778\uC790 \uC5C6\uC74C \u2192 \uC804\uCCB4 \uD30C\uC774\uD504\uB77C\uC778 (Ideation \u2192 PRD \u2192 \uD558\uB124\uC2A4)
|
|
1467
|
+
- \`ideation\` \u2192 Ideation\uB9CC \uC218\uD589
|
|
1468
|
+
- \`prd\` \u2192 PRD\uB9CC \uC218\uD589
|
|
1342
1469
|
- \`validate\` \u2192 \uAC80\uC99D\uB9CC \uC218\uD589
|
|
1343
1470
|
|
|
1344
|
-
## \
|
|
1471
|
+
## Phase 1: Ideation (\uC544\uC774\uB514\uC5B4 \uAD6C\uCCB4\uD654)
|
|
1472
|
+
|
|
1473
|
+
**\uBAA9\uD45C**: \uC0AC\uC6A9\uC790\uC758 \uBA38\uB9BF\uC18D \uC544\uC774\uB514\uC5B4\uB97C \`docs/ideation.md\`\uB85C \uAD6C\uCCB4\uD654
|
|
1474
|
+
|
|
1475
|
+
AskUserQuestion \uB3C4\uAD6C\uB85C \uC2EC\uCE35 \uC778\uD130\uBDF0\uB97C \uC9C4\uD589\uD558\uC138\uC694:
|
|
1476
|
+
1. "\uC5B4\uB5A4 \uBB38\uC81C\uB97C \uD574\uACB0\uD558\uACE0 \uC2F6\uC73C\uC138\uC694?" \u2014 \uD575\uC2EC \uACFC\uC81C \uD30C\uC545
|
|
1477
|
+
2. "\uC774 \uC11C\uBE44\uC2A4\uB97C \uC8FC\uB85C \uC0AC\uC6A9\uD560 \uC0AC\uB78C\uC740 \uB204\uAD6C\uC778\uAC00\uC694?" \u2014 \uB300\uC0C1 \uC0AC\uC6A9\uC790
|
|
1478
|
+
3. "\uBE44\uC2B7\uD55C \uC11C\uBE44\uC2A4\uAC00 \uC788\uB2E4\uBA74 \uBB50\uAC00 \uB2E4\uB978\uAC00\uC694?" \u2014 \uCC28\uBCC4\uC810
|
|
1479
|
+
4. "\uBC18\uB4DC\uC2DC \uC788\uC5B4\uC57C \uD560 \uAE30\uB2A5 3\uAC00\uC9C0\uB294?" \u2014 \uD575\uC2EC \uAE30\uB2A5
|
|
1480
|
+
5. "\uC5B8\uC81C\uAE4C\uC9C0 \uB9CC\uB4E4\uACE0 \uC2F6\uC73C\uC138\uC694?" \u2014 \uC77C\uC815 \uC81C\uC57D
|
|
1481
|
+
|
|
1482
|
+
\uB2F5\uBCC0\uC744 \uC885\uD569\uD558\uC5EC \`docs/ideation.md\`\uB97C \uC0DD\uC131\uD558\uC138\uC694.
|
|
1483
|
+
|
|
1484
|
+
## Phase 2: PRD \uC791\uC131 (\uC81C\uD488 \uC694\uAD6C\uC0AC\uD56D)
|
|
1485
|
+
|
|
1486
|
+
**\uBAA9\uD45C**: Ideation\uC744 \uAE30\uBC18\uC73C\uB85C \`docs/openspec.md\` PRD \uC791\uC131
|
|
1487
|
+
|
|
1488
|
+
\`docs/ideation.md\`\uB97C \uC77D\uACE0, \uBD80\uC871\uD55C \uB9E5\uB77D\uC740 AskUserQuestion\uC73C\uB85C \uBCF4\uAC15:
|
|
1489
|
+
1. "\uAE30\uC220 \uC2A4\uD0DD \uC120\uD638\uAC00 \uC788\uC73C\uC138\uC694?" \u2014 \uD504\uB808\uC784\uC6CC\uD06C/\uC5B8\uC5B4 \uC81C\uC57D
|
|
1490
|
+
2. "\uC678\uBD80 API \uC5F0\uB3D9\uC774 \uD544\uC694\uD55C\uAC00\uC694?" \u2014 \uC758\uC874\uC131 \uD30C\uC545
|
|
1491
|
+
3. "\uB370\uC774\uD130\uB294 \uC5B4\uB5A4 \uAC83\uC744 \uC800\uC7A5\uD574\uC57C \uD558\uB098\uC694?" \u2014 DB \uC2A4\uD0A4\uB9C8 \uD78C\uD2B8
|
|
1492
|
+
4. "\uB85C\uADF8\uC778/\uD68C\uC6D0\uAC00\uC785\uC774 \uD544\uC694\uD55C\uAC00\uC694?" \u2014 \uC778\uC99D \uBC94\uC704
|
|
1493
|
+
|
|
1494
|
+
\uB2F5\uBCC0\uC744 \uC885\uD569\uD558\uC5EC \`docs/openspec.md\` 5\uAC1C \uC139\uC158\uC744 \uC791\uC131:
|
|
1495
|
+
- \uBAA9\uC801 (Purpose)
|
|
1496
|
+
- \uC0AC\uC6A9\uC790 (Users)
|
|
1497
|
+
- \uD575\uC2EC \uAE30\uB2A5 (Features)
|
|
1498
|
+
- \uAE30\uC220 \uC2A4\uD0DD (Stack)
|
|
1499
|
+
- API \uC5D4\uB4DC\uD3EC\uC778\uD2B8
|
|
1500
|
+
|
|
1501
|
+
## Phase 3: \uAE30\uC220 \uC81C\uC57D + \uD558\uB124\uC2A4 \uC5D4\uC9C0\uB2C8\uC5B4\uB9C1
|
|
1502
|
+
|
|
1503
|
+
**\uBAA9\uD45C**: AI \uC5D0\uC774\uC804\uD2B8\uAC00 \uC548\uC804\uD558\uAC8C \uC791\uC5C5\uD560 \uC218 \uC788\uB294 \uD658\uACBD \uD655\uC778
|
|
1504
|
+
|
|
1505
|
+
AskUserQuestion\uC73C\uB85C \uAE30\uC220\uC801 \uC81C\uC57D \uD30C\uC545:
|
|
1506
|
+
1. "\uAE30\uC874\uC5D0 \uC0AC\uC6A9 \uC911\uC778 DB\uB098 \uC11C\uBC84\uAC00 \uC788\uB098\uC694?" \u2014 \uAE30\uC874 \uC778\uD504\uB77C
|
|
1507
|
+
2. "\uBC30\uD3EC \uD658\uACBD\uC740 \uC5B4\uB514\uC778\uAC00\uC694?" \u2014 \uBC30\uD3EC \uC81C\uC57D
|
|
1508
|
+
3. "\uD300\uC5D0\uC11C \uC0AC\uC6A9\uD558\uB294 \uCF54\uB529 \uADDC\uCE59\uC774 \uC788\uB098\uC694?" \u2014 \uC2A4\uD0C0\uC77C \uC81C\uC57D
|
|
1509
|
+
|
|
1510
|
+
\uD558\uB124\uC2A4 \uC5D4\uC9C0\uB2C8\uC5B4\uB9C1 \uD655\uC778:
|
|
1511
|
+
- \`CLAUDE.md\` \u2014 AI \uCEE8\uD14D\uC2A4\uD2B8 \uCDA9\uBD84\uD55C\uC9C0 \uAC80\uC99D
|
|
1512
|
+
- \`.claude/settings.json\` \u2014 \uAD8C\uD55C \uC124\uC815 \uC801\uC808\uD55C\uC9C0 \uD655\uC778
|
|
1513
|
+
- \uD14C\uC2A4\uD2B8 \uD658\uACBD \u2014 \`tests/\` \uB514\uB809\uD1A0\uB9AC + \uD14C\uC2A4\uD2B8 \uD504\uB808\uC784\uC6CC\uD06C \uC874\uC7AC \uD655\uC778
|
|
1514
|
+
- \uBD80\uC871\uD55C \uD56D\uBAA9\uC740 \uC790\uB3D9 \uC0DD\uC131 \uC81C\uC548
|
|
1515
|
+
|
|
1516
|
+
## Phase 4: \uAC80\uC99D
|
|
1345
1517
|
|
|
1346
|
-
|
|
1347
|
-
\`docs/
|
|
1348
|
-
\
|
|
1518
|
+
\uBAA8\uB4E0 Phase \uC644\uB8CC \uD6C4:
|
|
1519
|
+
1. \`docs/ideation.md\` \uC874\uC7AC + \uB0B4\uC6A9 \uD655\uC778
|
|
1520
|
+
2. \`docs/openspec.md\` 5\uAC1C \uC139\uC158 \uC644\uC131\uB3C4 \uAC80\uC99D
|
|
1521
|
+
3. \`handoff.md\` \uC5C5\uB370\uC774\uD2B8 \u2014 \uC644\uB8CC\uB41C \uD56D\uBAA9 \uCCB4\uD06C, \uB2E4\uC74C \uB2E8\uACC4 \uAC31\uC2E0
|
|
1349
1522
|
|
|
1350
|
-
|
|
1351
|
-
\`docs/openspec.md\`\uB97C \uC77D\uACE0 5\uAC1C \uC139\uC158 \uC644\uC131\uB3C4\uB97C \uAC80\uC99D\uD558\uC138\uC694:
|
|
1352
|
-
1. \uBAA9\uC801 (Purpose) \u2014 \uAD6C\uCCB4\uC801 \uC124\uBA85 \uC788\uB294\uAC00?
|
|
1353
|
-
2. \uC0AC\uC6A9\uC790 (Users) \u2014 \uCD5C\uC18C 1\uAC1C \uC5ED\uD560 \uC815\uC758?
|
|
1354
|
-
3. \uD575\uC2EC \uAE30\uB2A5 (Features) \u2014 \uCD5C\uC18C 1\uAC1C \uAE30\uB2A5 \uAE30\uC220?
|
|
1355
|
-
4. \uAE30\uC220 \uC2A4\uD0DD (Stack) \u2014 1\uAC1C \uC774\uC0C1 \uC815\uC758?
|
|
1356
|
-
5. API \uC5D4\uB4DC\uD3EC\uC778\uD2B8 \u2014 \uCD5C\uC18C 1\uAC1C \uC815\uC758?
|
|
1523
|
+
## \uC911\uC694 \uC6D0\uCE59
|
|
1357
1524
|
|
|
1358
|
-
\
|
|
1525
|
+
- **\uCD94\uCE21 \uAE08\uC9C0**: \uCEE8\uD14D\uC2A4\uD2B8\uAC00 \uBD80\uC871\uD558\uBA74 \uBC18\uB4DC\uC2DC AskUserQuestion\uC73C\uB85C \uC9C8\uBB38
|
|
1526
|
+
- **\uC774\uBBF8 \uC874\uC7AC\uD558\uB294 \uD30C\uC77C \uB36E\uC5B4\uC4F0\uC9C0 \uC54A\uC74C** \u2014 \uBCF4\uAC15\uB9CC \uC81C\uC548
|
|
1527
|
+
- **\uAC01 Phase \uC644\uB8CC \uC2DC \uC0AC\uC6A9\uC790\uC5D0\uAC8C \uACB0\uACFC \uC694\uC57D** \uBCF4\uACE0
|
|
1359
1528
|
`,
|
|
1360
1529
|
"validate.md": `---
|
|
1361
1530
|
name: "PAI: Validate"
|