aiwf 0.3.0 → 0.3.2
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/.aiwf/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +53 -0
- package/.aiwf/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +48 -0
- package/.aiwf/.claude/commands/aiwf/aiwf_compress_stats.md +79 -0
- package/.aiwf/.claude/commands/aiwf/aiwf_compress_with_persona.md +51 -0
- package/.aiwf/.claude/commands/aiwf/aiwf_evaluate.md +92 -0
- package/.aiwf/00_PROJECT_MANIFEST.md +183 -0
- package/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +121 -0
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_ADVANCED_USE_CASES.md +412 -0
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_API_REFERENCE.md +361 -0
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_COMMANDS_GUIDE.md +254 -0
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_FAQ.md +365 -0
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +305 -0
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_USER_GUIDE.md +416 -0
- package/.aiwf/01_PROJECT_DOCS/FEATURE_LEDGER_/354/213/234/354/236/221_/352/260/200/354/235/264/353/223/234.md +247 -0
- package/.aiwf/02_REQUIREMENTS/CLAUDE.md +78 -0
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/M02_milestone_meta.md +34 -0
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/PRD_Context_Engineering_Enhancement.md +108 -0
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_AI_Persona_System.md +299 -0
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Feature_Ledger_System.md +330 -0
- package/.aiwf/02_REQUIREMENTS/M02_Context_Engineering_Enhancement/SPECS_Token_Optimization.md +833 -0
- package/.aiwf/03_SPRINTS/CLAUDE.md +83 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/S01_M02_sprint_meta.md +95 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX01_S01_Feature_Ledger_/353/215/260/354/235/264/355/204/260_/352/265/254/354/241/260_/354/204/244/352/263/204.md +111 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX02_S01_Feature_Ledger_CLI_/353/252/205/353/240/271/354/226/264_/352/260/234/353/260/234.md +115 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX03_S01_Git_/354/227/260/353/217/231_Feature_/354/266/224/354/240/201.md +141 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX04_S01_Feature_Ledger_/353/254/270/354/204/234/355/231/224.md +114 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX05_S01_AI_/355/216/230/353/245/264/354/206/214/353/202/230_/353/215/260/354/235/264/355/204/260_/352/265/254/354/241/260_/354/204/244/352/263/204.md +123 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX06_S01_/355/216/230/353/245/264/354/206/214/353/202/230_/352/264/200/353/246/254_/353/252/205/353/240/271/354/226/264_/352/265/254/355/230/204.md +114 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX07_S01_Context_/354/225/225/354/266/225_/354/225/204/355/202/244/355/205/215/354/262/230_/354/204/244/352/263/204.md +114 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX08_S01_/355/206/240/355/201/260_/354/266/224/354/240/201_/354/213/234/354/212/244/355/205/234_/355/224/204/353/241/234/355/206/240/355/203/200/354/236/205.md +112 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX09_S01_/354/225/225/354/266/225_/354/225/214/352/263/240/353/246/254/354/246/230_/355/224/204/353/241/234/355/206/240/355/203/200/354/236/205.md +118 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX10_S01_update_docs_/353/252/205/353/240/271/354/226/264_/353/263/265/352/265/254.md +118 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX11_S01_/355/206/265/355/225/251_/355/205/214/354/212/244/355/212/270_Suite_/352/265/254/354/266/225.md +128 -0
- package/.aiwf/03_SPRINTS/S01_M02_context_foundation/TX12_S01_/354/204/261/353/212/245_/354/265/234/354/240/201/355/231/224_/353/260/217_/353/254/270/354/204/234/355/231/224.md +122 -0
- package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/S02_M02_sprint_meta.md +107 -0
- package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX01_S02_AI_/355/216/230/353/245/264/354/206/214/353/202/230_/353/252/205/353/240/271/354/226/264_/352/265/254/355/230/204.md +129 -0
- package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX02_S02_/355/216/230/353/245/264/354/206/214/353/202/230_/354/273/250/355/205/215/354/212/244/355/212/270_/354/240/201/354/232/251_/354/213/234/354/212/244/355/205/234.md +152 -0
- package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX03_S02_Context_/354/225/225/354/266/225_/354/225/214/352/263/240/353/246/254/354/246/230_/352/265/254/355/230/204.md +186 -0
- package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX05_S02_S02_/355/206/265/355/225/251_/355/205/214/354/212/244/355/212/270_/353/260/217_/353/254/270/354/204/234/355/231/224.md +192 -0
- package/.aiwf/03_SPRINTS/S02_M02_ai_enhancement/TX4_S02_Feature_Git_/354/227/260/353/217/231_/353/260/217_/354/236/220/353/217/231/355/231/224.md +162 -0
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_FINAL_SPRINT_SUMMARY.md +137 -0
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/S03_M02_sprint_meta.md +106 -0
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX14_S03_M02_/353/247/210/354/235/274/354/212/244/355/206/244_/354/265/234/354/242/205_/352/262/200/354/246/235_/353/260/217_/353/254/270/354/204/234/355/231/224.md +214 -0
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX15_S03_/352/270/260/353/263/270_/355/224/204/353/241/234/354/240/235/355/212/270_/355/205/234/355/224/214/353/246/277_/352/260/234/353/260/234.md +177 -0
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX16_S03_/354/230/244/355/224/204/353/235/274/354/235/270_/355/205/234/355/224/214/353/246/277_/354/272/220/354/213/234_/354/213/234/354/212/244/355/205/234.md +206 -0
- package/.aiwf/03_SPRINTS/S03_M02_ecosystem_integration/TX_T13_S03_AI_/353/217/204/352/265/254_/355/206/265/355/225/251_/355/205/234/355/224/214/353/246/277_/352/260/234/353/260/234.md +151 -0
- package/.aiwf/04_GENERAL_TASKS/CLAUDE.md +96 -0
- package/.aiwf/04_GENERAL_TASKS/TX001_complete_english_translation.md +127 -0
- package/.aiwf/05_DOCUMENTATION/performance-report.md +33 -0
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_GIT_INTEGRATION.md +314 -0
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_INTEGRATION_GUIDE.md +227 -0
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_LEDGER_INDEX.md +23 -0
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_SCHEMA.md +205 -0
- package/.aiwf/06_FEATURE_LEDGERS/FEATURE_STATE_DIAGRAM.md +190 -0
- package/.aiwf/06_FEATURE_LEDGERS/active/FL001_user_authentication_system.md +47 -0
- package/.aiwf/06_FEATURE_LEDGERS/active/FL002_user_authentication_system.md +47 -0
- package/.aiwf/07_AI_PERSONAS/PERSONA_INDEX.md +57 -0
- package/.aiwf/07_AI_PERSONAS/architect/best_practices.md +104 -0
- package/.aiwf/07_AI_PERSONAS/architect/context_rules.md +46 -0
- package/.aiwf/07_AI_PERSONAS/architect/knowledge_base.md +235 -0
- package/.aiwf/07_AI_PERSONAS/backend/best_practices.md +363 -0
- package/.aiwf/07_AI_PERSONAS/backend/context_rules.md +61 -0
- package/.aiwf/07_AI_PERSONAS/backend/knowledge_base.md +623 -0
- package/.aiwf/07_AI_PERSONAS/data_analyst/best_practices.md +32 -0
- package/.aiwf/07_AI_PERSONAS/data_analyst/context_rules.md +43 -0
- package/.aiwf/07_AI_PERSONAS/data_analyst/knowledge_base.md +36 -0
- package/.aiwf/07_AI_PERSONAS/frontend/best_practices.md +31 -0
- package/.aiwf/07_AI_PERSONAS/frontend/context_rules.md +43 -0
- package/.aiwf/07_AI_PERSONAS/frontend/knowledge_base.md +32 -0
- package/.aiwf/07_AI_PERSONAS/security/best_practices.md +63 -0
- package/.aiwf/07_AI_PERSONAS/security/context_rules.md +53 -0
- package/.aiwf/07_AI_PERSONAS/security/knowledge_base.md +93 -0
- package/.aiwf/10_PERSONAS/active.json +1 -0
- package/.aiwf/10_PERSONAS/developer.md +37 -0
- package/.aiwf/10_STATE_OF_PROJECT/2025-07-09-07-20-solid-progress.md +144 -0
- package/.aiwf/98_PROMPTS/SAAS_DEVELOPMENT_GUIDE.md +302 -0
- package/.aiwf/98_PROMPTS/github_integration.md +130 -0
- package/.aiwf/98_PROMPTS/useful-prompts.md +31 -0
- package/.aiwf/98_PROMPTS/vibe-front-prompts.md +89 -0
- package/.aiwf/99_TEMPLATES/adr_template.md +49 -0
- package/.aiwf/99_TEMPLATES/feature_template.md +263 -0
- package/.aiwf/99_TEMPLATES/milestone_meta_template.md +25 -0
- package/.aiwf/99_TEMPLATES/project_manifest_template.md +39 -0
- package/.aiwf/99_TEMPLATES/sprint_meta_template.md +23 -0
- package/.aiwf/99_TEMPLATES/task_template.md +36 -0
- package/.aiwf/CLAUDE.md +76 -0
- package/.aiwf/ai-tools/README.md +105 -0
- package/.aiwf/ai-tools/augment/README.md +371 -0
- package/.aiwf/ai-tools/augment/config.json +30 -0
- package/.aiwf/ai-tools/augment/template/.augment/aiwf-integration.md +387 -0
- package/.aiwf/ai-tools/augment/template/.augment/augment.yaml +347 -0
- package/.aiwf/ai-tools/augment/template/augment.config.json +64 -0
- package/.aiwf/ai-tools/claude-code/README.md +151 -0
- package/.aiwf/ai-tools/claude-code/config.json +28 -0
- package/.aiwf/ai-tools/claude-code/template/CLAUDE.md +91 -0
- package/.aiwf/ai-tools/cursor/README.md +314 -0
- package/.aiwf/ai-tools/cursor/config.json +29 -0
- package/.aiwf/ai-tools/cursor/template/.cursorrules +362 -0
- package/.aiwf/ai-tools/github-copilot/README.md +195 -0
- package/.aiwf/ai-tools/github-copilot/config.json +24 -0
- package/.aiwf/ai-tools/github-copilot/template/.github/copilot-instructions.md +202 -0
- package/.aiwf/ai-tools/windsurf/README.md +355 -0
- package/.aiwf/ai-tools/windsurf/config.json +29 -0
- package/.aiwf/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +260 -0
- package/.aiwf/ai-tools/windsurf/template/.windsurf/windsurf.config.js +312 -0
- package/.aiwf/ai-tools/windsurf/template/windsurf.config.json +63 -0
- package/.aiwf/config/language.json +6 -0
- package/.aiwf/feature-ledger/FL-001-authentication.json +52 -0
- package/.aiwf/feature-ledger/feature-index.json +20 -0
- package/.aiwf/personas/analyst.json +44 -0
- package/.aiwf/personas/architect/best_practices.md +136 -0
- package/.aiwf/personas/architect/knowledge_base.md +377 -0
- package/.aiwf/personas/architect.json +44 -0
- package/.aiwf/personas/backend/best_practices.md +766 -0
- package/.aiwf/personas/backend/knowledge_base.md +1070 -0
- package/.aiwf/personas/data_analyst/best_practices.md +594 -0
- package/.aiwf/personas/data_analyst/knowledge_base.md +1057 -0
- package/.aiwf/personas/developer.json +44 -0
- package/.aiwf/personas/evaluation_criteria.json +137 -0
- package/.aiwf/personas/frontend/best_practices.md +445 -0
- package/.aiwf/personas/frontend/knowledge_base.md +729 -0
- package/.aiwf/personas/persona-index.json +31 -0
- package/.aiwf/personas/reviewer.json +44 -0
- package/.aiwf/personas/security/best_practices.md +307 -0
- package/.aiwf/personas/security/knowledge_base.md +498 -0
- package/.aiwf/personas/tester.json +44 -0
- package/.aiwf/scripts/cache-templates.js +209 -0
- package/.aiwf/scripts/create-offline.js +86 -0
- package/.aiwf/scripts/create-project.js +151 -0
- package/.aiwf/scripts/feature-progress-calculator.cjs +236 -0
- package/.aiwf/scripts/git-integration.cjs +391 -0
- package/.aiwf/scripts/install-git-hooks.cjs +226 -0
- package/.aiwf/scripts/test-commit-parsing.cjs +125 -0
- package/.aiwf/scripts/update-feature-status.cjs +198 -0
- package/.aiwf/templates/README.md +78 -0
- package/.aiwf/templates/api-server/config.json +64 -0
- package/.aiwf/templates/api-server/template/.aiwf/config.json +56 -0
- package/.aiwf/templates/api-server/template/.aiwf/feature-ledger.json +42 -0
- package/.aiwf/templates/api-server/template/.aiwf/personas/backend-engineer.json +40 -0
- package/.aiwf/templates/api-server/template/.aiwf/scripts/cli.js +111 -0
- package/.aiwf/templates/api-server/template/.env.example +29 -0
- package/.aiwf/templates/api-server/template/.eslintrc.json +23 -0
- package/.aiwf/templates/api-server/template/README.md +171 -0
- package/.aiwf/templates/api-server/template/jest.config.js +26 -0
- package/.aiwf/templates/api-server/template/nodemon.json +9 -0
- package/.aiwf/templates/api-server/template/package.json +61 -0
- package/.aiwf/templates/api-server/template/src/app.ts +60 -0
- package/.aiwf/templates/api-server/template/src/config/swagger.ts +38 -0
- package/.aiwf/templates/api-server/template/src/controllers/aiwfController.ts +68 -0
- package/.aiwf/templates/api-server/template/src/controllers/authController.ts +128 -0
- package/.aiwf/templates/api-server/template/src/controllers/statusController.ts +28 -0
- package/.aiwf/templates/api-server/template/src/index.ts +28 -0
- package/.aiwf/templates/api-server/template/src/middleware/aiwfMiddleware.ts +50 -0
- package/.aiwf/templates/api-server/template/src/middleware/authMiddleware.ts +41 -0
- package/.aiwf/templates/api-server/template/src/middleware/errorHandler.ts +42 -0
- package/.aiwf/templates/api-server/template/src/middleware/notFoundHandler.ts +14 -0
- package/.aiwf/templates/api-server/template/src/middleware/requestLogger.ts +20 -0
- package/.aiwf/templates/api-server/template/src/routes/aiwf.ts +42 -0
- package/.aiwf/templates/api-server/template/src/routes/index.ts +13 -0
- package/.aiwf/templates/api-server/template/src/routes/v1/index.ts +67 -0
- package/.aiwf/templates/api-server/template/src/utils/logger.ts +37 -0
- package/.aiwf/templates/api-server/template/tests/app.test.ts +40 -0
- package/.aiwf/templates/api-server/template/tsconfig.json +43 -0
- package/.aiwf/templates/npm-library/config.json +61 -0
- package/.aiwf/templates/npm-library/template/LICENSE +21 -0
- package/.aiwf/templates/npm-library/template/README.md +201 -0
- package/.aiwf/templates/npm-library/template/package.json +78 -0
- package/.aiwf/templates/web-app/config.json +53 -0
- package/.aiwf/templates/web-app/template/.aiwf/config.json +54 -0
- package/.aiwf/templates/web-app/template/.aiwf/feature-ledger.json +37 -0
- package/.aiwf/templates/web-app/template/.aiwf/personas/fullstack-developer.json +40 -0
- package/.aiwf/templates/web-app/template/.aiwf/scripts/cli.js +110 -0
- package/.aiwf/templates/web-app/template/.eslintrc.cjs +20 -0
- package/.aiwf/templates/web-app/template/README.md +151 -0
- package/.aiwf/templates/web-app/template/index.html +14 -0
- package/.aiwf/templates/web-app/template/package.json +44 -0
- package/.aiwf/templates/web-app/template/postcss.config.js +6 -0
- package/.aiwf/templates/web-app/template/public/vite.svg +1 -0
- package/.aiwf/templates/web-app/template/src/App.tsx +21 -0
- package/.aiwf/templates/web-app/template/src/components/Layout.tsx +57 -0
- package/.aiwf/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +107 -0
- package/.aiwf/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +93 -0
- package/.aiwf/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +71 -0
- package/.aiwf/templates/web-app/template/src/index.css +60 -0
- package/.aiwf/templates/web-app/template/src/main.tsx +10 -0
- package/.aiwf/templates/web-app/template/src/pages/AiwfDashboard.tsx +60 -0
- package/.aiwf/templates/web-app/template/src/pages/HomePage.tsx +89 -0
- package/.aiwf/templates/web-app/template/src/pages/NotFound.tsx +25 -0
- package/.aiwf/templates/web-app/template/src/stores/aiwfStore.ts +126 -0
- package/.aiwf/templates/web-app/template/src/types/global.d.ts +9 -0
- package/.aiwf/templates/web-app/template/src/vite-env.d.ts +1 -0
- package/.aiwf/templates/web-app/template/tailwind.config.js +30 -0
- package/.aiwf/templates/web-app/template/tsconfig.json +37 -0
- package/.aiwf/templates/web-app/template/tsconfig.node.json +10 -0
- package/.aiwf/templates/web-app/template/vite.config.ts +23 -0
- package/.aiwf/test-cache/86c7f9e80251abb8bedd58953ab0d1779e46b4f43ea33b63bffdb778106373b0.json +6 -0
- package/.aiwf/test-cache/9e252a90b80fce0585d7ed0646e7a9b4343e109f661f42a3ae678ba1ec5e22c7.json +7 -0
- package/.aiwf/test-results-s02.json +36 -0
- package/.aiwf/token-data/alerts.json +293 -0
- package/.aiwf/token-data/monitor-config.json +12 -0
- package/CHANGELOG.md +119 -33
- package/CHANGELOG_M02.md +52 -0
- package/CLAUDE.md +133 -199
- package/README.ko.md +5 -0
- package/README.md +31 -5
- package/RELEASE_NOTES_M02.md +177 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_feature_ledger.md +54 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_default_mode.md +66 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_docs.md +225 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_get_feature_details.md +78 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +57 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_list_features.md +54 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_architect.md +60 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_backend.md +60 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_data_analyst.md +60 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_frontend.md +60 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_security.md +60 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_persona_status.md +72 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_update_feature_status.md +53 -0
- package/claude-code/aiwf/en/commands/ai-persona.js +667 -0
- package/claude-code/aiwf/en/commands/compress-context.js +355 -0
- package/claude-code/aiwf/en/commands/feature-ledger.js +565 -0
- package/claude-code/aiwf/en/commands/feature_commit_report.js +370 -0
- package/claude-code/aiwf/en/commands/scan_git_history.js +234 -0
- package/claude-code/aiwf/en/commands/sync_feature_commits.js +154 -0
- package/claude-code/aiwf/en/commands/token-tracking.js +443 -0
- package/claude-code/aiwf/en/config/commit-patterns.js +103 -0
- package/claude-code/aiwf/en/hooks/install-hooks.sh +100 -0
- package/claude-code/aiwf/en/hooks/post-commit +84 -0
- package/claude-code/aiwf/en/tests/compression-test-suite.js +1252 -0
- package/claude-code/aiwf/en/tests/test-git-integration.js +164 -0
- package/claude-code/aiwf/en/tests/token-tracking.test.js +537 -0
- package/claude-code/aiwf/en/utils/compression-metrics.js +1031 -0
- package/claude-code/aiwf/en/utils/compression-strategies.js +557 -0
- package/claude-code/aiwf/en/utils/content-normalizer.js +455 -0
- package/claude-code/aiwf/en/utils/context-compressor.js +583 -0
- package/claude-code/aiwf/en/utils/feature-updater.js +271 -0
- package/claude-code/aiwf/en/utils/git-utils.js +220 -0
- package/claude-code/aiwf/en/utils/importance-classifier.js +645 -0
- package/claude-code/aiwf/en/utils/information-filter.js +710 -0
- package/claude-code/aiwf/en/utils/text-summarizer.js +487 -0
- package/claude-code/aiwf/en/utils/token-counter.js +177 -0
- package/claude-code/aiwf/en/utils/token-monitor.js +484 -0
- package/claude-code/aiwf/en/utils/token-reporter.js +453 -0
- package/claude-code/aiwf/en/utils/token-storage.js +433 -0
- package/claude-code/aiwf/en/utils/token-tracker.js +283 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_ID_GENERATOR.md +138 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_INDEX.md +186 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_METADATA.md +240 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/FEATURE_WORKFLOW.md +183 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/README.md +94 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/active/FL001_/354/202/254/354/232/251/354/236/220_/354/235/270/354/246/235_/354/213/234/354/212/244/355/205/234.md +154 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/active/FL002_ai_/355/216/230/353/245/264/354/206/214/353/202/230_/354/213/234/354/212/244/355/205/234.md +272 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/completed/FL003_/353/213/244/352/265/255/354/226/264_/353/252/205/353/240/271/354/226/264_/355/221/234/354/244/200/355/231/224.md +266 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_schema.json +122 -0
- package/claude-code/aiwf/ko/.aiwf/06_FEATURE_LEDGERS/schemas/feature_validator.cjs +406 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_code_review.md +62 -62
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md +111 -111
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_aggressive_persona.md +53 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_context.md +116 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_minimal_persona.md +48 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_stats.md +79 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_compress_with_persona.md +51 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_feature_ledger.md +54 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_general_task.md +106 -106
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_milestone_plan.md +127 -127
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +130 -130
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +87 -87
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_default_mode.md +44 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md +72 -72
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_docs.md +225 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_evaluate.md +92 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_get_feature_details.md +78 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md +86 -86
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_issue_create.md +3 -3
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +57 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_list_features.md +54 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_architect.md +48 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_backend.md +37 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_data_analyst.md +37 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_frontend.md +37 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_security.md +48 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_persona_status.md +50 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_pr_create.md +14 -14
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime.md +5 -5
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_project_review.md +39 -39
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_test.md +76 -77
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_testing_review.md +120 -120
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_general.md +209 -266
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_docs_kr.md +25 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_update_feature_status.md +53 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md +226 -226
- package/claude-code/aiwf/ko/CLAUDE.md +76 -0
- package/claude-code/aiwf/ko/ai-tools/README.md +105 -0
- package/claude-code/aiwf/ko/ai-tools/augment/README.md +371 -0
- package/claude-code/aiwf/ko/ai-tools/augment/config.json +30 -0
- package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/aiwf-integration.md +387 -0
- package/claude-code/aiwf/ko/ai-tools/augment/template/.augment/augment.yaml +347 -0
- package/claude-code/aiwf/ko/ai-tools/augment/template/augment.config.json +64 -0
- package/claude-code/aiwf/ko/ai-tools/claude-code/README.md +151 -0
- package/claude-code/aiwf/ko/ai-tools/claude-code/config.json +28 -0
- package/claude-code/aiwf/ko/ai-tools/claude-code/template/CLAUDE.md +91 -0
- package/claude-code/aiwf/ko/ai-tools/cursor/README.md +314 -0
- package/claude-code/aiwf/ko/ai-tools/cursor/config.json +29 -0
- package/claude-code/aiwf/ko/ai-tools/cursor/template/.cursorrules +362 -0
- package/claude-code/aiwf/ko/ai-tools/github-copilot/README.md +195 -0
- package/claude-code/aiwf/ko/ai-tools/github-copilot/config.json +24 -0
- package/claude-code/aiwf/ko/ai-tools/github-copilot/template/.github/copilot-instructions.md +202 -0
- package/claude-code/aiwf/ko/ai-tools/windsurf/README.md +355 -0
- package/claude-code/aiwf/ko/ai-tools/windsurf/config.json +29 -0
- package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/aiwf-rules.md +260 -0
- package/claude-code/aiwf/ko/ai-tools/windsurf/template/.windsurf/windsurf.config.js +312 -0
- package/claude-code/aiwf/ko/ai-tools/windsurf/template/windsurf.config.json +63 -0
- package/claude-code/aiwf/ko/bin/aiwf-create.js +56 -0
- package/claude-code/aiwf/ko/bin/aiwf.js +21 -0
- package/claude-code/aiwf/ko/commands/ai-persona.js +602 -0
- package/claude-code/aiwf/ko/commands/compress-context.js +389 -0
- package/claude-code/aiwf/ko/commands/evaluate.js +246 -0
- package/claude-code/aiwf/ko/commands/feature-ledger.js +565 -0
- package/claude-code/aiwf/ko/commands/feature_commit_report.js +370 -0
- package/claude-code/aiwf/ko/commands/persona-context-apply.js +562 -0
- package/claude-code/aiwf/ko/commands/scan_git_history.js +234 -0
- package/claude-code/aiwf/ko/commands/sync_feature_commits.js +154 -0
- package/claude-code/aiwf/ko/commands/token-tracking.js +443 -0
- package/claude-code/aiwf/ko/config/commit-patterns.js +103 -0
- package/claude-code/aiwf/ko/config/language.json +6 -0
- package/claude-code/aiwf/ko/docs/00_PROJECT_MANIFEST.md +183 -0
- package/claude-code/aiwf/ko/docs/ARCHITECTURE.md +121 -0
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_ADVANCED_USE_CASES.md +412 -0
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_API_REFERENCE.md +361 -0
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_COMMANDS_GUIDE.md +254 -0
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_FAQ.md +365 -0
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +305 -0
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_USER_GUIDE.md +416 -0
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_/354/213/234/354/236/221_/352/260/200/354/235/264/353/223/234.md +247 -0
- package/claude-code/aiwf/ko/feature-ledger/FL-001-authentication.json +52 -0
- package/claude-code/aiwf/ko/feature-ledger/feature-index.json +20 -0
- package/claude-code/aiwf/ko/hooks/install-hooks.sh +100 -0
- package/claude-code/aiwf/ko/hooks/post-commit +84 -0
- package/claude-code/aiwf/ko/personas/PERSONA_INDEX.md +57 -0
- package/claude-code/aiwf/ko/personas/analyst.json +44 -0
- package/claude-code/aiwf/ko/personas/architect/best_practices.md +136 -0
- package/claude-code/aiwf/ko/personas/architect/knowledge_base.md +377 -0
- package/claude-code/aiwf/ko/personas/architect.json +44 -0
- package/claude-code/aiwf/ko/personas/backend/best_practices.md +766 -0
- package/claude-code/aiwf/ko/personas/backend/knowledge_base.md +1070 -0
- package/claude-code/aiwf/ko/personas/data_analyst/best_practices.md +594 -0
- package/claude-code/aiwf/ko/personas/data_analyst/knowledge_base.md +1057 -0
- package/claude-code/aiwf/ko/personas/developer.json +44 -0
- package/claude-code/aiwf/ko/personas/developer.md +37 -0
- package/claude-code/aiwf/ko/personas/evaluation_criteria.json +137 -0
- package/claude-code/aiwf/ko/personas/frontend/best_practices.md +445 -0
- package/claude-code/aiwf/ko/personas/frontend/knowledge_base.md +729 -0
- package/claude-code/aiwf/ko/personas/persona-index.json +31 -0
- package/claude-code/aiwf/ko/personas/reviewer.json +44 -0
- package/claude-code/aiwf/ko/personas/security/best_practices.md +307 -0
- package/claude-code/aiwf/ko/personas/security/knowledge_base.md +498 -0
- package/claude-code/aiwf/ko/personas/tester.json +44 -0
- package/claude-code/aiwf/ko/scripts/cache-templates.js +209 -0
- package/claude-code/aiwf/ko/scripts/create-offline.js +86 -0
- package/claude-code/aiwf/ko/scripts/create-project.js +151 -0
- package/claude-code/aiwf/ko/scripts/feature-progress-calculator.cjs +236 -0
- package/claude-code/aiwf/ko/scripts/git-integration.cjs +391 -0
- package/claude-code/aiwf/ko/scripts/install-git-hooks.cjs +226 -0
- package/claude-code/aiwf/ko/scripts/test-commit-parsing.cjs +125 -0
- package/claude-code/aiwf/ko/scripts/update-feature-status.cjs +198 -0
- package/claude-code/aiwf/ko/templates/README.md +78 -0
- package/claude-code/aiwf/ko/templates/api-server/config.json +64 -0
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/config.json +56 -0
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/feature-ledger.json +42 -0
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/personas/backend-engineer.json +40 -0
- package/claude-code/aiwf/ko/templates/api-server/template/.aiwf/scripts/cli.js +111 -0
- package/claude-code/aiwf/ko/templates/api-server/template/.env.example +29 -0
- package/claude-code/aiwf/ko/templates/api-server/template/.eslintrc.json +23 -0
- package/claude-code/aiwf/ko/templates/api-server/template/README.md +171 -0
- package/claude-code/aiwf/ko/templates/api-server/template/jest.config.js +26 -0
- package/claude-code/aiwf/ko/templates/api-server/template/nodemon.json +9 -0
- package/claude-code/aiwf/ko/templates/api-server/template/package.json +61 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/app.ts +60 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/config/swagger.ts +38 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/aiwfController.ts +68 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/authController.ts +128 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/controllers/statusController.ts +28 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/index.ts +28 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/aiwfMiddleware.ts +50 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/authMiddleware.ts +41 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/errorHandler.ts +42 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/notFoundHandler.ts +14 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/middleware/requestLogger.ts +20 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/routes/aiwf.ts +42 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/routes/index.ts +13 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/routes/v1/index.ts +67 -0
- package/claude-code/aiwf/ko/templates/api-server/template/src/utils/logger.ts +37 -0
- package/claude-code/aiwf/ko/templates/api-server/template/tests/app.test.ts +40 -0
- package/claude-code/aiwf/ko/templates/api-server/template/tsconfig.json +43 -0
- package/claude-code/aiwf/ko/templates/npm-library/config.json +61 -0
- package/claude-code/aiwf/ko/templates/npm-library/template/LICENSE +21 -0
- package/claude-code/aiwf/ko/templates/npm-library/template/README.md +201 -0
- package/claude-code/aiwf/ko/templates/npm-library/template/package.json +78 -0
- package/claude-code/aiwf/ko/templates/web-app/config.json +53 -0
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/config.json +54 -0
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/feature-ledger.json +37 -0
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/personas/fullstack-developer.json +40 -0
- package/claude-code/aiwf/ko/templates/web-app/template/.aiwf/scripts/cli.js +110 -0
- package/claude-code/aiwf/ko/templates/web-app/template/.eslintrc.cjs +20 -0
- package/claude-code/aiwf/ko/templates/web-app/template/README.md +151 -0
- package/claude-code/aiwf/ko/templates/web-app/template/index.html +14 -0
- package/claude-code/aiwf/ko/templates/web-app/template/package.json +44 -0
- package/claude-code/aiwf/ko/templates/web-app/template/postcss.config.js +6 -0
- package/claude-code/aiwf/ko/templates/web-app/template/public/vite.svg +1 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/App.tsx +21 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/Layout.tsx +57 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +107 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/FeatureLedger.tsx +93 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +71 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/index.css +60 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/main.tsx +10 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/pages/AiwfDashboard.tsx +60 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/pages/HomePage.tsx +89 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/pages/NotFound.tsx +25 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/stores/aiwfStore.ts +126 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/types/global.d.ts +9 -0
- package/claude-code/aiwf/ko/templates/web-app/template/src/vite-env.d.ts +1 -0
- package/claude-code/aiwf/ko/templates/web-app/template/tailwind.config.js +30 -0
- package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.json +37 -0
- package/claude-code/aiwf/ko/templates/web-app/template/tsconfig.node.json +10 -0
- package/claude-code/aiwf/ko/templates/web-app/template/vite.config.ts +23 -0
- package/claude-code/aiwf/ko/tests/compression-test-suite.js +1252 -0
- package/claude-code/aiwf/ko/tests/test-git-integration.js +164 -0
- package/claude-code/aiwf/ko/tests/token-tracking.test.js +537 -0
- package/claude-code/aiwf/ko/token-data/alerts.json +293 -0
- package/claude-code/aiwf/ko/token-data/monitor-config.json +12 -0
- package/claude-code/aiwf/ko/utils/background-monitor.js +223 -0
- package/claude-code/aiwf/ko/utils/compression-metrics.js +1031 -0
- package/claude-code/aiwf/ko/utils/compression-strategies.js +557 -0
- package/claude-code/aiwf/ko/utils/content-normalizer.js +455 -0
- package/claude-code/aiwf/ko/utils/context-compressor.js +583 -0
- package/claude-code/aiwf/ko/utils/context-rule-parser.js +180 -0
- package/claude-code/aiwf/ko/utils/context-token-monitor.js +463 -0
- package/claude-code/aiwf/ko/utils/context-update-manager.js +502 -0
- package/claude-code/aiwf/ko/utils/feature-updater.js +271 -0
- package/claude-code/aiwf/ko/utils/git-utils.js +220 -0
- package/claude-code/aiwf/ko/utils/importance-classifier.js +645 -0
- package/claude-code/aiwf/ko/utils/information-filter.js +710 -0
- package/claude-code/aiwf/ko/utils/persona-aware-compressor.js +598 -0
- package/claude-code/aiwf/ko/utils/prompt-injector.js +242 -0
- package/claude-code/aiwf/ko/utils/simplified-evaluator.js +119 -0
- package/claude-code/aiwf/ko/utils/text-summarizer.js +492 -0
- package/claude-code/aiwf/ko/utils/token-counter.js +177 -0
- package/claude-code/aiwf/ko/utils/token-monitor.js +484 -0
- package/claude-code/aiwf/ko/utils/token-reporter.js +453 -0
- package/claude-code/aiwf/ko/utils/token-storage.js +433 -0
- package/claude-code/aiwf/ko/utils/token-tracker.js +283 -0
- package/docs/AI-WORKFLOW.ko.md +9 -2
- package/docs/AI-WORKFLOW.md +9 -2
- package/docs/AI_PERSONA_SYSTEM_DESIGN.md +516 -0
- package/docs/API_DOCUMENTATION.md +932 -0
- package/docs/API_REFERENCE.md +979 -0
- package/docs/COMMANDS_GUIDE.ko.md +101 -5
- package/docs/COMMANDS_GUIDE.md +289 -5
- package/docs/CONTRIBUTING.ko.md +408 -0
- package/docs/CONTRIBUTING.md +205 -203
- package/docs/EXAMPLES.md +691 -0
- package/docs/Enhanced_Installation_Flow_Design.md +498 -0
- package/docs/GETTING_STARTED.md +480 -0
- package/docs/PERFORMANCE_ARCHITECTURE.md +494 -0
- package/docs/PERFORMANCE_GUIDELINES.md +553 -0
- package/docs/PRD.ko.md +110 -58
- package/docs/PRD.md +110 -58
- package/docs/TROUBLESHOOTING.md +721 -0
- package/docs/git-feature-integration-guide.md +253 -0
- package/docs/guides/ai-personas-guide-ko.md +239 -0
- package/docs/guides/ai-personas-guide.md +239 -0
- package/docs/guides/context-compression-guide-ko.md +313 -0
- package/docs/guides/context-compression-guide.md +313 -0
- package/docs/guides/feature-git-integration-guide-ko.md +481 -0
- package/docs/guides/feature-git-integration-guide.md +481 -0
- package/docs/lightweight-evaluation.md +198 -0
- package/docs/m02-dod-checklist.md +125 -0
- package/docs/m02-gap-analysis.md +214 -0
- package/docs/m02-milestone-completion-report.md +186 -0
- package/docs/m02-milestone-executive-summary.md +68 -0
- package/docs/offline-template-cache.md +323 -0
- package/docs/performance-benchmark-report.md +159 -0
- package/docs/persona-aware-compression.md +168 -0
- package/docs/reports/S02-sprint-report.md +190 -0
- package/docs/usability-test-report.md +170 -0
- package/index.js +1349 -21
- package/jest.config.js +23 -0
- package/language-cli.js +279 -0
- package/language-utils.js +330 -0
- package/lib/ai-persona-manager.js +711 -0
- package/lib/cache-cli.js +459 -0
- package/lib/cache-integration.js +401 -0
- package/lib/cache-system.js +332 -0
- package/lib/context-engine.js +568 -0
- package/lib/file-batch-processor.js +401 -0
- package/lib/memory-profiler.js +471 -0
- package/lib/metrics-collector.js +885 -0
- package/lib/offline-detector.js +386 -0
- package/lib/performance-benchmark.js +621 -0
- package/lib/task-analyzer.js +599 -0
- package/lib/template-cache-system.js +559 -0
- package/lib/template-downloader.js +467 -0
- package/lib/template-manager.js +310 -0
- package/lib/template-version-manager.js +491 -0
- package/lib/token-optimizer.js +517 -0
- package/package.json +17 -6
- package/scripts/run-integration-tests.js +317 -0
- package/scripts/validate-commands.cjs +338 -0
- package/scripts/validate-commands.js +254 -0
- package/src/commands/ai-tool.js +383 -0
- package/test-token-system.js +88 -0
- package/tests/application.test.js +260 -0
- package/tests/basic.test.js +62 -0
- package/tests/commands.test.js +127 -0
- package/tests/installer.test.js +129 -0
- package/tests/integration/ai-persona-system.test.js +396 -0
- package/tests/integration/ai-persona.test.js +390 -0
- package/tests/integration/command-integration.test.js +600 -0
- package/tests/integration/context-compression.test.js +361 -0
- package/tests/integration/feature-ledger.test.js +226 -0
- package/tests/integration/git-integration.test.js +307 -0
- package/tests/integration/m02-milestone.test.js +420 -0
- package/tests/integration/persona-context-application.test.js +508 -0
- package/tests/integration/setup.js +174 -0
- package/tests/integration/test-persona-aware-compression.js +93 -0
- package/tests/language-utils.test.js +287 -0
- package/tests/s02-integration.test.js +422 -0
- package/tests/unit/ai-persona-manager.test.js +514 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime_context.md +0 -5
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime_context.md +0 -8
package/docs/AI-WORKFLOW.ko.md
CHANGED
|
@@ -18,14 +18,15 @@ AIWF은 Claude Code, Gemini-CLI 와 더 효과적으로 작업하기 위해 만
|
|
|
18
18
|
npx aiwf
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
**다국어 지원**: 설치 시 영어와 한국어 중 선택할 수
|
|
21
|
+
**다국어 지원**: AIWF는 지능형 감지 및 선호도 저장 기능을 갖춘 포괄적인 언어 관리 시스템을 제공합니다. 설치 시 영어와 한국어 중 선택할 수 있으며, 나중에 내장된 언어 관리 명령어를 사용하여 언어를 전환할 수 있습니다.
|
|
22
22
|
|
|
23
23
|
이것은 폴더 구조를 설정하고 프로젝트에 명령 파일을 설치/업데이트합니다. 기존 설치를 업데이트하는 데도 사용할 수 있으며, 명령 파일은 자동으로 백업됩니다.
|
|
24
24
|
|
|
25
25
|
**설치 옵션**:
|
|
26
26
|
|
|
27
27
|
- 대화형 설치: 언어 선택 후 설치
|
|
28
|
-
- 강제 설치: `npx aiwf --force` (
|
|
28
|
+
- 강제 설치: `npx aiwf --force` (자동 감지된 언어 사용)
|
|
29
|
+
- 언어 관리: 설치 후 언어 전환을 위한 `aiwf-lang` 명령어 사용
|
|
29
30
|
|
|
30
31
|
### 2. 프로젝트 초기화하기
|
|
31
32
|
|
|
@@ -223,8 +224,14 @@ AIWF 워크플로를 구동하는 맞춤형 Claude Code 명령어:
|
|
|
223
224
|
- 모든 마일스톤 실행: `yolo milestone-all`
|
|
224
225
|
- Worktree 지원: `yolo sprint-all worktree`
|
|
225
226
|
- 연속 실행과 상세 진행률 리포트 제공
|
|
227
|
+
- `language_manager` - 포괄적 언어 관리 시스템:
|
|
228
|
+
- 현재 언어 설정 및 상태 확인
|
|
229
|
+
- 대화형 언어 전환
|
|
230
|
+
- 시스템 언어 선호도 자동 감지
|
|
226
231
|
- 그 외 테스트, 리뷰, 프로젝트 관리용 명령어 다수
|
|
227
232
|
|
|
233
|
+
**언어 지원**: 모든 명령어는 완전한 기능적 동등성과 표준화된 품질을 갖춘 영어 및 한국어 버전으로 제공됩니다.
|
|
234
|
+
|
|
228
235
|
## 디렉토리 구조
|
|
229
236
|
|
|
230
237
|
```plaintext
|
package/docs/AI-WORKFLOW.md
CHANGED
|
@@ -18,14 +18,15 @@ AIWF is a directory-based project management system I created to work more effec
|
|
|
18
18
|
npx aiwf
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
**Multi-language Support**: During installation, you can choose between English and Korean
|
|
21
|
+
**Multi-language Support**: AIWF features a comprehensive language management system with intelligent detection and preference storage. During installation, you can choose between English and Korean, and later switch languages using the built-in language management commands.
|
|
22
22
|
|
|
23
23
|
This sets up the folder structure and installs/updates command files in your project. You can also use it to update existing installations - command files are automatically backed up.
|
|
24
24
|
|
|
25
25
|
**Installation Options**:
|
|
26
26
|
|
|
27
27
|
- Interactive installation: Select language then install
|
|
28
|
-
- Force installation: `npx aiwf --force` (
|
|
28
|
+
- Force installation: `npx aiwf --force` (uses auto-detected language)
|
|
29
|
+
- Language management: Use `aiwf-lang` commands for post-installation language switching
|
|
29
30
|
|
|
30
31
|
### 2. Initialize Your Project
|
|
31
32
|
|
|
@@ -223,8 +224,14 @@ Custom Claude Code commands that drive the AIWF workflow:
|
|
|
223
224
|
- Execute all milestones: `yolo milestone-all`
|
|
224
225
|
- Worktree support: `yolo sprint-all worktree`
|
|
225
226
|
- Provides continuous execution and detailed progress reports
|
|
227
|
+
- `language_manager` - Comprehensive language management system:
|
|
228
|
+
- Check current language settings and status
|
|
229
|
+
- Switch between languages interactively
|
|
230
|
+
- Auto-detect system language preferences
|
|
226
231
|
- Many more commands for testing, review, and project management
|
|
227
232
|
|
|
233
|
+
**Language Support**: All commands are available in both English and Korean versions with complete functional equivalence and standardized quality.
|
|
234
|
+
|
|
228
235
|
## Directory Structure
|
|
229
236
|
|
|
230
237
|
```plaintext
|
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
# AI Persona System Design Document
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The AI Persona System is designed to optimize Claude Code's behavior for different development tasks through specialized personas. This document outlines the architecture, implementation strategy, and integration approach.
|
|
6
|
+
|
|
7
|
+
## Design Principles
|
|
8
|
+
|
|
9
|
+
1. **Hybrid Activation**: Automatic detection with manual override capability
|
|
10
|
+
2. **Context Preservation**: Maintain existing context while adding persona-specific rules
|
|
11
|
+
3. **Predefined Personas**: Start with 5 core personas, extensible in future versions
|
|
12
|
+
4. **Prompt Injection**: Integrate with Claude via system prompt modification
|
|
13
|
+
5. **Tool Recommendations**: Suggest optimal tools without hard restrictions
|
|
14
|
+
6. **Dynamic Token Management**: Adjust token allocation based on task complexity
|
|
15
|
+
7. **Metrics-Driven**: Collect completion time and quality metrics for continuous improvement
|
|
16
|
+
|
|
17
|
+
## Architecture
|
|
18
|
+
|
|
19
|
+
### System Components
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
23
|
+
│ Claude Code │
|
|
24
|
+
├─────────────────────────────────────────────────────────────┤
|
|
25
|
+
│ AI Persona System │
|
|
26
|
+
├─────────────────┬───────────────────┬───────────────────────┤
|
|
27
|
+
│ Persona Manager │ Context Engine │ Metrics Collector │
|
|
28
|
+
├─────────────────┼───────────────────┼───────────────────────┤
|
|
29
|
+
│ Auto Detector │ Rule Processor │ Quality Analyzer │
|
|
30
|
+
│ Manual Switch │ Token Optimizer │ Time Tracker │
|
|
31
|
+
│ State Manager │ Prompt Builder │ Report Generator │
|
|
32
|
+
└─────────────────┴───────────────────┴───────────────────────┘
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Core Personas
|
|
36
|
+
|
|
37
|
+
| Persona | Primary Focus | Key Behaviors | Recommended Tools |
|
|
38
|
+
|---------|---------------|---------------|-------------------|
|
|
39
|
+
| **Architect** | System design | Big picture thinking, scalability focus | Glob, LS, MarkdownProcessor |
|
|
40
|
+
| **Debugger** | Problem solving | Detailed analysis, systematic approach | Grep, Read, MemoryProfiler |
|
|
41
|
+
| **Reviewer** | Code quality | Standards compliance, security awareness | Git commands, FileUtils |
|
|
42
|
+
| **Documenter** | Documentation | Clear explanations, examples | MarkdownProcessor, TemplateEngine |
|
|
43
|
+
| **Optimizer** | Performance | Efficiency focus, benchmarking | PerformanceBenchmark, TokenTracker |
|
|
44
|
+
|
|
45
|
+
## Implementation Strategy
|
|
46
|
+
|
|
47
|
+
### Phase 1: Core Infrastructure
|
|
48
|
+
|
|
49
|
+
#### 1.1 Persona Manager Class
|
|
50
|
+
|
|
51
|
+
```javascript
|
|
52
|
+
class PersonaManager {
|
|
53
|
+
constructor(options = {}) {
|
|
54
|
+
this.currentPersona = null;
|
|
55
|
+
this.personaHistory = [];
|
|
56
|
+
this.autoDetectionEnabled = true;
|
|
57
|
+
this.metricsCollector = new MetricsCollector();
|
|
58
|
+
this.contextEngine = new ContextEngine();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
async switchPersona(personaName, options = {}) {
|
|
62
|
+
// Validate persona
|
|
63
|
+
if (!this.isValidPersona(personaName)) {
|
|
64
|
+
throw new Error(`Invalid persona: ${personaName}`);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Save current state
|
|
68
|
+
if (this.currentPersona) {
|
|
69
|
+
this.personaHistory.push({
|
|
70
|
+
persona: this.currentPersona,
|
|
71
|
+
timestamp: new Date(),
|
|
72
|
+
metrics: await this.collectMetrics()
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Load new persona
|
|
77
|
+
const persona = await this.loadPersona(personaName);
|
|
78
|
+
|
|
79
|
+
// Apply context rules
|
|
80
|
+
await this.contextEngine.applyPersonaRules(persona);
|
|
81
|
+
|
|
82
|
+
// Update state
|
|
83
|
+
this.currentPersona = persona;
|
|
84
|
+
|
|
85
|
+
// Track switch event
|
|
86
|
+
this.metricsCollector.trackEvent('persona_switch', {
|
|
87
|
+
from: this.personaHistory[this.personaHistory.length - 1]?.persona?.name,
|
|
88
|
+
to: personaName,
|
|
89
|
+
trigger: options.manual ? 'manual' : 'auto'
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
return persona;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
async detectOptimalPersona(taskContext) {
|
|
96
|
+
// Analyze task characteristics
|
|
97
|
+
const analysis = await this.analyzeTask(taskContext);
|
|
98
|
+
|
|
99
|
+
// Score each persona
|
|
100
|
+
const scores = {};
|
|
101
|
+
for (const personaName of this.getAvailablePersonas()) {
|
|
102
|
+
scores[personaName] = await this.scorePersonaFit(personaName, analysis);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
// Return best match
|
|
106
|
+
return Object.entries(scores)
|
|
107
|
+
.sort(([,a], [,b]) => b - a)[0][0];
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### 1.2 Context Engine
|
|
113
|
+
|
|
114
|
+
```javascript
|
|
115
|
+
class ContextEngine {
|
|
116
|
+
constructor() {
|
|
117
|
+
this.baseContext = null;
|
|
118
|
+
this.personaOverlay = null;
|
|
119
|
+
this.tokenOptimizer = new TokenOptimizer();
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
async applyPersonaRules(persona) {
|
|
123
|
+
// Preserve base context
|
|
124
|
+
if (!this.baseContext) {
|
|
125
|
+
this.baseContext = await this.captureCurrentContext();
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Build persona-specific overlay
|
|
129
|
+
this.personaOverlay = {
|
|
130
|
+
systemPrompt: this.buildSystemPrompt(persona),
|
|
131
|
+
priorityPatterns: persona.contextRules.priority,
|
|
132
|
+
exclusionPatterns: persona.contextRules.exclude,
|
|
133
|
+
focusAreas: persona.contextRules.focus,
|
|
134
|
+
keywords: persona.contextRules.keywords
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// Optimize token usage
|
|
138
|
+
const optimizedContext = await this.tokenOptimizer.optimize(
|
|
139
|
+
this.baseContext,
|
|
140
|
+
this.personaOverlay,
|
|
141
|
+
persona.tokenAllocation
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
// Inject into Claude
|
|
145
|
+
await this.injectContext(optimizedContext);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
buildSystemPrompt(persona) {
|
|
149
|
+
return `You are currently operating in ${persona.name} mode.
|
|
150
|
+
|
|
151
|
+
Key behaviors:
|
|
152
|
+
${persona.behaviors.map(b => `- ${b}`).join('\n')}
|
|
153
|
+
|
|
154
|
+
Focus areas:
|
|
155
|
+
${persona.focusAreas.map(f => `- ${f}`).join('\n')}
|
|
156
|
+
|
|
157
|
+
Communication style: ${persona.communicationStyle}
|
|
158
|
+
|
|
159
|
+
Recommended tools: ${persona.recommendedTools.join(', ')}`;
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Phase 2: Auto-Detection System
|
|
165
|
+
|
|
166
|
+
#### 2.1 Task Analyzer
|
|
167
|
+
|
|
168
|
+
```javascript
|
|
169
|
+
class TaskAnalyzer {
|
|
170
|
+
constructor() {
|
|
171
|
+
this.patterns = {
|
|
172
|
+
architecture: [
|
|
173
|
+
/design|architect|structure|system|scalab/i,
|
|
174
|
+
/interface|api|contract|schema/i
|
|
175
|
+
],
|
|
176
|
+
debugging: [
|
|
177
|
+
/bug|error|fix|issue|problem|debug/i,
|
|
178
|
+
/trace|stack|exception|fail/i
|
|
179
|
+
],
|
|
180
|
+
review: [
|
|
181
|
+
/review|audit|check|quality|standard/i,
|
|
182
|
+
/security|vulnerability|code.*smell/i
|
|
183
|
+
],
|
|
184
|
+
documentation: [
|
|
185
|
+
/document|docs|readme|guide|tutorial/i,
|
|
186
|
+
/explain|describe|comment/i
|
|
187
|
+
],
|
|
188
|
+
optimization: [
|
|
189
|
+
/optimiz|performance|speed|efficient/i,
|
|
190
|
+
/benchmark|profile|memory|token/i
|
|
191
|
+
]
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
async analyzeTask(context) {
|
|
196
|
+
const analysis = {
|
|
197
|
+
command: context.command,
|
|
198
|
+
recentFiles: await this.getRecentFiles(),
|
|
199
|
+
keywords: this.extractKeywords(context),
|
|
200
|
+
gitContext: await this.getGitContext(),
|
|
201
|
+
errorState: await this.checkErrorState()
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
// Score each persona category
|
|
205
|
+
analysis.scores = {};
|
|
206
|
+
for (const [persona, patterns] of Object.entries(this.patterns)) {
|
|
207
|
+
analysis.scores[persona] = this.calculatePatternScore(
|
|
208
|
+
analysis,
|
|
209
|
+
patterns
|
|
210
|
+
);
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
return analysis;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
calculatePatternScore(analysis, patterns) {
|
|
217
|
+
let score = 0;
|
|
218
|
+
|
|
219
|
+
// Check command
|
|
220
|
+
patterns.forEach(pattern => {
|
|
221
|
+
if (pattern.test(analysis.command)) score += 10;
|
|
222
|
+
});
|
|
223
|
+
|
|
224
|
+
// Check keywords
|
|
225
|
+
analysis.keywords.forEach(keyword => {
|
|
226
|
+
patterns.forEach(pattern => {
|
|
227
|
+
if (pattern.test(keyword)) score += 5;
|
|
228
|
+
});
|
|
229
|
+
});
|
|
230
|
+
|
|
231
|
+
// Context bonuses
|
|
232
|
+
if (analysis.errorState.hasErrors && patterns.some(p => p.test('debug'))) {
|
|
233
|
+
score += 20;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
return score;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
### Phase 3: Metrics Collection
|
|
242
|
+
|
|
243
|
+
#### 3.1 Metrics Collector
|
|
244
|
+
|
|
245
|
+
```javascript
|
|
246
|
+
class MetricsCollector {
|
|
247
|
+
constructor() {
|
|
248
|
+
this.metrics = {
|
|
249
|
+
sessions: [],
|
|
250
|
+
personaPerformance: {},
|
|
251
|
+
taskOutcomes: []
|
|
252
|
+
};
|
|
253
|
+
this.currentSession = null;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
startSession(persona, task) {
|
|
257
|
+
this.currentSession = {
|
|
258
|
+
id: generateId(),
|
|
259
|
+
persona: persona.name,
|
|
260
|
+
task: task,
|
|
261
|
+
startTime: Date.now(),
|
|
262
|
+
events: [],
|
|
263
|
+
tokenUsage: {
|
|
264
|
+
start: this.getCurrentTokenCount(),
|
|
265
|
+
contextSwitches: 0
|
|
266
|
+
}
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
trackEvent(eventType, data) {
|
|
271
|
+
if (!this.currentSession) return;
|
|
272
|
+
|
|
273
|
+
this.currentSession.events.push({
|
|
274
|
+
type: eventType,
|
|
275
|
+
timestamp: Date.now(),
|
|
276
|
+
data
|
|
277
|
+
});
|
|
278
|
+
|
|
279
|
+
// Special handling for quality events
|
|
280
|
+
if (eventType === 'task_completed') {
|
|
281
|
+
this.calculateQualityMetrics(data);
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
async calculateQualityMetrics(completionData) {
|
|
286
|
+
const metrics = {
|
|
287
|
+
completionTime: Date.now() - this.currentSession.startTime,
|
|
288
|
+
tokenEfficiency: this.calculateTokenEfficiency(),
|
|
289
|
+
errorRate: await this.calculateErrorRate(),
|
|
290
|
+
codeQuality: await this.assessCodeQuality(completionData),
|
|
291
|
+
userSatisfaction: null // To be collected via feedback
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
this.currentSession.qualityMetrics = metrics;
|
|
295
|
+
this.updatePersonaPerformance(this.currentSession.persona, metrics);
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
calculateTokenEfficiency() {
|
|
299
|
+
const totalTokens = this.getCurrentTokenCount() -
|
|
300
|
+
this.currentSession.tokenUsage.start;
|
|
301
|
+
const taskComplexity = this.estimateTaskComplexity();
|
|
302
|
+
|
|
303
|
+
return {
|
|
304
|
+
totalUsed: totalTokens,
|
|
305
|
+
efficiency: taskComplexity / totalTokens,
|
|
306
|
+
contextSwitches: this.currentSession.tokenUsage.contextSwitches
|
|
307
|
+
};
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
async generateReport(timeRange = 'week') {
|
|
311
|
+
const report = {
|
|
312
|
+
summary: {
|
|
313
|
+
totalSessions: this.metrics.sessions.length,
|
|
314
|
+
averageCompletionTime: this.calculateAverageTime(),
|
|
315
|
+
personaUsage: this.getPersonaUsageStats(),
|
|
316
|
+
qualityTrend: this.calculateQualityTrend()
|
|
317
|
+
},
|
|
318
|
+
personaAnalysis: this.analyzePersonaEffectiveness(),
|
|
319
|
+
recommendations: this.generateRecommendations()
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
return report;
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
analyzePersonaEffectiveness() {
|
|
326
|
+
const analysis = {};
|
|
327
|
+
|
|
328
|
+
for (const [persona, data] of Object.entries(this.metrics.personaPerformance)) {
|
|
329
|
+
analysis[persona] = {
|
|
330
|
+
averageCompletionTime: average(data.completionTimes),
|
|
331
|
+
averageQualityScore: average(data.qualityScores),
|
|
332
|
+
tokenEfficiency: average(data.tokenEfficiencies),
|
|
333
|
+
bestUseCases: this.identifyBestUseCases(persona),
|
|
334
|
+
improvementAreas: this.identifyImprovementAreas(persona)
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
return analysis;
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
```
|
|
342
|
+
|
|
343
|
+
### Phase 4: Integration Points
|
|
344
|
+
|
|
345
|
+
#### 4.1 Claude Command Integration
|
|
346
|
+
|
|
347
|
+
```javascript
|
|
348
|
+
// In .claude/commands/aiwf/persona-commands.js
|
|
349
|
+
|
|
350
|
+
export const personaCommands = {
|
|
351
|
+
'/project:aiwf:ai_persona:switch': async (personaName) => {
|
|
352
|
+
const manager = getPersonaManager();
|
|
353
|
+
await manager.switchPersona(personaName, { manual: true });
|
|
354
|
+
return `Switched to ${personaName} persona`;
|
|
355
|
+
},
|
|
356
|
+
|
|
357
|
+
'/project:aiwf:ai_persona:auto': async (enabled) => {
|
|
358
|
+
const manager = getPersonaManager();
|
|
359
|
+
manager.autoDetectionEnabled = enabled;
|
|
360
|
+
return `Auto-detection ${enabled ? 'enabled' : 'disabled'}`;
|
|
361
|
+
},
|
|
362
|
+
|
|
363
|
+
'/project:aiwf:ai_persona:status': async () => {
|
|
364
|
+
const manager = getPersonaManager();
|
|
365
|
+
const current = manager.currentPersona;
|
|
366
|
+
const metrics = await manager.metricsCollector.getCurrentSessionMetrics();
|
|
367
|
+
|
|
368
|
+
return formatPersonaStatus(current, metrics);
|
|
369
|
+
},
|
|
370
|
+
|
|
371
|
+
'/project:aiwf:ai_persona:report': async (timeRange) => {
|
|
372
|
+
const manager = getPersonaManager();
|
|
373
|
+
const report = await manager.metricsCollector.generateReport(timeRange);
|
|
374
|
+
|
|
375
|
+
return formatPersonaReport(report);
|
|
376
|
+
}
|
|
377
|
+
};
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
#### 4.2 Git Hook Integration
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
#!/bin/bash
|
|
384
|
+
# .git/hooks/post-commit
|
|
385
|
+
|
|
386
|
+
# Detect if this was a bug fix
|
|
387
|
+
if git log -1 --pretty=%B | grep -qiE "fix|bug|error"; then
|
|
388
|
+
# Suggest debugger persona for follow-up
|
|
389
|
+
echo "💡 Tip: Switch to debugger persona for thorough testing"
|
|
390
|
+
echo " /project:aiwf:ai_persona:debugger"
|
|
391
|
+
fi
|
|
392
|
+
|
|
393
|
+
# Track commit patterns for persona optimization
|
|
394
|
+
aiwf-persona track-commit
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
## Performance Optimization
|
|
398
|
+
|
|
399
|
+
### Token Management Strategy
|
|
400
|
+
|
|
401
|
+
1. **Base Allocation**: Each persona has a suggested token budget
|
|
402
|
+
- Architect: 30% context, 70% response
|
|
403
|
+
- Debugger: 50% context, 50% response
|
|
404
|
+
- Reviewer: 40% context, 60% response
|
|
405
|
+
- Documenter: 20% context, 80% response
|
|
406
|
+
- Optimizer: 60% context, 40% response
|
|
407
|
+
|
|
408
|
+
2. **Dynamic Adjustment**: Based on task complexity
|
|
409
|
+
- Simple tasks: -20% tokens
|
|
410
|
+
- Complex tasks: +30% tokens
|
|
411
|
+
- Multi-file tasks: +50% tokens
|
|
412
|
+
|
|
413
|
+
3. **Context Pruning**: Remove irrelevant information
|
|
414
|
+
- Architect: Prune implementation details
|
|
415
|
+
- Debugger: Prune documentation
|
|
416
|
+
- Reviewer: Prune test files
|
|
417
|
+
- Documenter: Prune internal logic
|
|
418
|
+
- Optimizer: Prune comments
|
|
419
|
+
|
|
420
|
+
## Testing Strategy
|
|
421
|
+
|
|
422
|
+
### Unit Tests
|
|
423
|
+
|
|
424
|
+
```javascript
|
|
425
|
+
describe('PersonaManager', () => {
|
|
426
|
+
test('switches personas correctly', async () => {
|
|
427
|
+
const manager = new PersonaManager();
|
|
428
|
+
await manager.switchPersona('architect');
|
|
429
|
+
|
|
430
|
+
expect(manager.currentPersona.name).toBe('architect');
|
|
431
|
+
expect(manager.personaHistory).toHaveLength(0);
|
|
432
|
+
});
|
|
433
|
+
|
|
434
|
+
test('detects optimal persona', async () => {
|
|
435
|
+
const manager = new PersonaManager();
|
|
436
|
+
const taskContext = {
|
|
437
|
+
command: 'debug the login error',
|
|
438
|
+
recentFiles: ['auth.js', 'login.test.js']
|
|
439
|
+
};
|
|
440
|
+
|
|
441
|
+
const optimal = await manager.detectOptimalPersona(taskContext);
|
|
442
|
+
expect(optimal).toBe('debugger');
|
|
443
|
+
});
|
|
444
|
+
});
|
|
445
|
+
```
|
|
446
|
+
|
|
447
|
+
### Integration Tests
|
|
448
|
+
|
|
449
|
+
```javascript
|
|
450
|
+
describe('Persona System Integration', () => {
|
|
451
|
+
test('full workflow with auto-detection', async () => {
|
|
452
|
+
// Initialize system
|
|
453
|
+
const system = await initializePersonaSystem();
|
|
454
|
+
|
|
455
|
+
// Simulate task
|
|
456
|
+
const task = {
|
|
457
|
+
type: 'bug_fix',
|
|
458
|
+
description: 'Fix authentication timeout'
|
|
459
|
+
};
|
|
460
|
+
|
|
461
|
+
// Start task
|
|
462
|
+
await system.startTask(task);
|
|
463
|
+
|
|
464
|
+
// Verify persona selection
|
|
465
|
+
expect(system.currentPersona.name).toBe('debugger');
|
|
466
|
+
|
|
467
|
+
// Complete task
|
|
468
|
+
const result = await system.completeTask({
|
|
469
|
+
success: true,
|
|
470
|
+
filesModified: ['auth.js']
|
|
471
|
+
});
|
|
472
|
+
|
|
473
|
+
// Verify metrics collected
|
|
474
|
+
expect(result.metrics).toHaveProperty('completionTime');
|
|
475
|
+
expect(result.metrics).toHaveProperty('tokenEfficiency');
|
|
476
|
+
});
|
|
477
|
+
});
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
## Rollout Plan
|
|
481
|
+
|
|
482
|
+
### Phase 1: Beta (Week 1-2)
|
|
483
|
+
- Core PersonaManager implementation
|
|
484
|
+
- Manual switching only
|
|
485
|
+
- Basic metrics collection
|
|
486
|
+
|
|
487
|
+
### Phase 2: Auto-Detection (Week 3-4)
|
|
488
|
+
- Task analyzer implementation
|
|
489
|
+
- Auto-detection with manual override
|
|
490
|
+
- Enhanced context engine
|
|
491
|
+
|
|
492
|
+
### Phase 3: Metrics & Optimization (Week 5-6)
|
|
493
|
+
- Full metrics collection
|
|
494
|
+
- Performance reports
|
|
495
|
+
- Token optimization
|
|
496
|
+
|
|
497
|
+
### Phase 4: Production (Week 7+)
|
|
498
|
+
- Public release
|
|
499
|
+
- User feedback collection
|
|
500
|
+
- Continuous improvement
|
|
501
|
+
|
|
502
|
+
## Success Metrics
|
|
503
|
+
|
|
504
|
+
1. **Adoption Rate**: >70% of users actively using personas
|
|
505
|
+
2. **Task Completion Time**: 20% reduction on average
|
|
506
|
+
3. **Token Efficiency**: 30% improvement
|
|
507
|
+
4. **User Satisfaction**: >4.5/5 rating
|
|
508
|
+
5. **Auto-Detection Accuracy**: >85% correct persona selection
|
|
509
|
+
|
|
510
|
+
## Future Enhancements
|
|
511
|
+
|
|
512
|
+
1. **Custom Personas**: User-defined personas
|
|
513
|
+
2. **Team Personas**: Shared team configurations
|
|
514
|
+
3. **Learning System**: ML-based persona optimization
|
|
515
|
+
4. **IDE Integration**: Direct VS Code/Cursor integration
|
|
516
|
+
5. **Persona Marketplace**: Community-shared personas
|