aiwf 0.3.1 → 0.3.3
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/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/installed.flag +1 -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 +95 -11
- package/CHANGELOG_M02.md +52 -0
- package/CLAUDE.md +135 -0
- package/README.ko.md +5 -0
- package/README.md +6 -0
- 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_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_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_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_default_mode.md +44 -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_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_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 +2 -2
- 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/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/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-lock.json +10022 -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_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 +8 -2
- package/docs/COMMANDS_GUIDE.md +196 -2
- package/docs/CONTRIBUTING.ko.md +408 -0
- package/docs/CONTRIBUTING.md +205 -203
- package/docs/EXAMPLES.md +691 -0
- package/docs/GETTING_STARTED.md +480 -0
- package/docs/PERFORMANCE_ARCHITECTURE.md +494 -0
- package/docs/PERFORMANCE_GUIDELINES.md +553 -0
- 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 +116 -4
- package/jest.config.js +20 -1
- package/language-utils.js +1 -1
- 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 +6 -3
- package/scripts/run-integration-tests.js +317 -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 +1 -1
- 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 +25 -9
- 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_language_manager.md +0 -287
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_language_status.md +0 -246
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_language_manager.md +0 -287
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_language_status.md +0 -246
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
[Read in Korean (한국어로 보기)](ai-personas-guide-ko.md)
|
|
2
|
+
|
|
3
|
+
# AI Personas User Guide
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
AIWF's AI Persona system is a feature that optimizes Claude Code's behavior patterns according to the characteristics of development tasks. Through 5 specialized personas, you can leverage the most suitable AI assistant for each task.
|
|
8
|
+
|
|
9
|
+
## Persona Types
|
|
10
|
+
|
|
11
|
+
### 1. Architect
|
|
12
|
+
**Purpose**: System design and architecture decisions
|
|
13
|
+
|
|
14
|
+
**Characteristics**:
|
|
15
|
+
- Focus on big picture and overall system structure
|
|
16
|
+
- Prioritize scalability and maintainability
|
|
17
|
+
- Apply design patterns and architectural principles
|
|
18
|
+
- Establish technology stack selection and integration strategies
|
|
19
|
+
|
|
20
|
+
**Use Cases**:
|
|
21
|
+
- Design phase of new features
|
|
22
|
+
- System refactoring planning
|
|
23
|
+
- Technology stack decisions
|
|
24
|
+
- Inter-module interface design
|
|
25
|
+
|
|
26
|
+
**Commands**:
|
|
27
|
+
```bash
|
|
28
|
+
/project:aiwf:ai_persona:architect
|
|
29
|
+
# or in Korean
|
|
30
|
+
/프로젝트:aiwf:ai_페르소나:아키텍트
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
### 2. Debugger
|
|
34
|
+
**Purpose**: Bug detection and problem solving
|
|
35
|
+
|
|
36
|
+
**Characteristics**:
|
|
37
|
+
- Detailed code analysis and error tracking
|
|
38
|
+
- Step-by-step execution flow verification
|
|
39
|
+
- Consider edge cases and exception scenarios
|
|
40
|
+
- Identify performance bottlenecks
|
|
41
|
+
|
|
42
|
+
**Use Cases**:
|
|
43
|
+
- Bug reproduction and root cause analysis
|
|
44
|
+
- Performance issue resolution
|
|
45
|
+
- Memory leak tracking
|
|
46
|
+
- Exception handling improvements
|
|
47
|
+
|
|
48
|
+
**Commands**:
|
|
49
|
+
```bash
|
|
50
|
+
/project:aiwf:ai_persona:debugger
|
|
51
|
+
# or in Korean
|
|
52
|
+
/프로젝트:aiwf:ai_페르소나:디버거
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### 3. Reviewer
|
|
56
|
+
**Purpose**: Code quality review and improvement
|
|
57
|
+
|
|
58
|
+
**Characteristics**:
|
|
59
|
+
- Verify compliance with coding standards
|
|
60
|
+
- Identify security vulnerabilities
|
|
61
|
+
- Find optimization opportunities
|
|
62
|
+
- Evaluate readability and maintainability
|
|
63
|
+
|
|
64
|
+
**Use Cases**:
|
|
65
|
+
- PR review preparation
|
|
66
|
+
- Code quality improvement
|
|
67
|
+
- Security audits
|
|
68
|
+
- Refactoring suggestions
|
|
69
|
+
|
|
70
|
+
**Commands**:
|
|
71
|
+
```bash
|
|
72
|
+
/project:aiwf:ai_persona:reviewer
|
|
73
|
+
# or in Korean
|
|
74
|
+
/프로젝트:aiwf:ai_페르소나:리뷰어
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 4. Documenter
|
|
78
|
+
**Purpose**: Documentation writing and management
|
|
79
|
+
|
|
80
|
+
**Characteristics**:
|
|
81
|
+
- Clear and understandable explanations
|
|
82
|
+
- Automatic API documentation generation
|
|
83
|
+
- Write usage examples and tutorials
|
|
84
|
+
- Support for multilingual documentation
|
|
85
|
+
|
|
86
|
+
**Use Cases**:
|
|
87
|
+
- README writing
|
|
88
|
+
- API documentation
|
|
89
|
+
- User guide creation
|
|
90
|
+
- Technical specification writing
|
|
91
|
+
|
|
92
|
+
**Commands**:
|
|
93
|
+
```bash
|
|
94
|
+
/project:aiwf:ai_persona:documenter
|
|
95
|
+
# or in Korean
|
|
96
|
+
/프로젝트:aiwf:ai_페르소나:문서화전문가
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### 5. Optimizer
|
|
100
|
+
**Purpose**: Performance optimization and efficiency improvement
|
|
101
|
+
|
|
102
|
+
**Characteristics**:
|
|
103
|
+
- Algorithm complexity analysis
|
|
104
|
+
- Memory usage optimization
|
|
105
|
+
- Execution time reduction
|
|
106
|
+
- Resource efficiency improvement
|
|
107
|
+
|
|
108
|
+
**Use Cases**:
|
|
109
|
+
- Performance bottleneck improvements
|
|
110
|
+
- Algorithm optimization
|
|
111
|
+
- Database query improvements
|
|
112
|
+
- Memory usage reduction
|
|
113
|
+
|
|
114
|
+
**Commands**:
|
|
115
|
+
```bash
|
|
116
|
+
/project:aiwf:ai_persona:optimizer
|
|
117
|
+
# or in Korean
|
|
118
|
+
/프로젝트:aiwf:ai_페르소나:최적화전문가
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
## How to Switch Personas
|
|
122
|
+
|
|
123
|
+
### Basic Usage
|
|
124
|
+
1. Select appropriate persona before starting work
|
|
125
|
+
2. Activate persona by entering command
|
|
126
|
+
3. Perform work
|
|
127
|
+
4. Switch to different persona if needed
|
|
128
|
+
|
|
129
|
+
### Example Workflow
|
|
130
|
+
```bash
|
|
131
|
+
# 1. Design new feature
|
|
132
|
+
/project:aiwf:ai_persona:architect
|
|
133
|
+
"Please design a new user authentication system"
|
|
134
|
+
|
|
135
|
+
# 2. Debug after implementation
|
|
136
|
+
/project:aiwf:ai_persona:debugger
|
|
137
|
+
"Please solve the issue where session is not maintained during login"
|
|
138
|
+
|
|
139
|
+
# 3. Code review
|
|
140
|
+
/project:aiwf:ai_persona:reviewer
|
|
141
|
+
"Please review the implemented authentication system code"
|
|
142
|
+
|
|
143
|
+
# 4. Write documentation
|
|
144
|
+
/project:aiwf:ai_persona:documenter
|
|
145
|
+
"Please write authentication API documentation"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Context Rules by Persona
|
|
149
|
+
|
|
150
|
+
Each persona has unique context processing rules:
|
|
151
|
+
|
|
152
|
+
### Architect Context
|
|
153
|
+
- **Priority**: System design documents, architecture diagrams
|
|
154
|
+
- **Focus**: Interfaces, module structure, dependencies
|
|
155
|
+
- **Exclude**: Implementation details, temporary code
|
|
156
|
+
|
|
157
|
+
### Debugger Context
|
|
158
|
+
- **Priority**: Error logs, stack traces, test results
|
|
159
|
+
- **Focus**: Execution flow, variable states, conditional statements
|
|
160
|
+
- **Exclude**: Documentation, comments, style-related code
|
|
161
|
+
|
|
162
|
+
### Reviewer Context
|
|
163
|
+
- **Priority**: Changed code, commit history
|
|
164
|
+
- **Focus**: Coding standards, security patterns, performance impact
|
|
165
|
+
- **Exclude**: Test data, build files
|
|
166
|
+
|
|
167
|
+
### Documenter Context
|
|
168
|
+
- **Priority**: Public APIs, usage examples, README
|
|
169
|
+
- **Focus**: User perspective, clarity, completeness
|
|
170
|
+
- **Exclude**: Internal implementation, debug code
|
|
171
|
+
|
|
172
|
+
### Optimizer Context
|
|
173
|
+
- **Priority**: Performance measurement results, profiling data
|
|
174
|
+
- **Focus**: Time complexity, space complexity, resource usage
|
|
175
|
+
- **Exclude**: Documentation, UI code, test code
|
|
176
|
+
|
|
177
|
+
## Best Practices
|
|
178
|
+
|
|
179
|
+
### 1. Select Appropriate Persona for Task
|
|
180
|
+
- Choose the most suitable persona considering the nature of the task
|
|
181
|
+
- Switch sequentially when multiple personas are needed for one task
|
|
182
|
+
|
|
183
|
+
### 2. Persona Switching Timing
|
|
184
|
+
- Switch to appropriate persona when work phase changes
|
|
185
|
+
- Maintain consistency with same persona for same type of tasks
|
|
186
|
+
|
|
187
|
+
### 3. Context Management
|
|
188
|
+
- Clearly convey previous work results when switching personas
|
|
189
|
+
- Distribute work leveraging each persona's strengths
|
|
190
|
+
|
|
191
|
+
### 4. Collaboration Scenarios
|
|
192
|
+
```bash
|
|
193
|
+
# Persona utilization in team projects
|
|
194
|
+
1. Architect: Overall system design
|
|
195
|
+
2. Developer: Feature implementation (default mode)
|
|
196
|
+
3. Debugger: Integration testing and bug fixing
|
|
197
|
+
4. Reviewer: Code review and improvements
|
|
198
|
+
5. Documenter: Final documentation
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Troubleshooting
|
|
202
|
+
|
|
203
|
+
### When Persona Doesn't Work as Expected
|
|
204
|
+
1. Check if command was entered correctly
|
|
205
|
+
2. Verify current project context is AIWF
|
|
206
|
+
3. Wait 2-3 seconds after persona switch
|
|
207
|
+
4. If problem persists, reset to default mode and retry
|
|
208
|
+
|
|
209
|
+
### Performance Degradation
|
|
210
|
+
- Minimize persona switching for complex tasks
|
|
211
|
+
- Include only relevant files in large codebases
|
|
212
|
+
- Use exclusion settings for unnecessary context
|
|
213
|
+
|
|
214
|
+
### Context Conflicts
|
|
215
|
+
- Check context rules for each persona
|
|
216
|
+
- Explicitly set priority for conflicting information
|
|
217
|
+
- Manually clean up context when necessary
|
|
218
|
+
|
|
219
|
+
## Advanced Usage
|
|
220
|
+
|
|
221
|
+
### 1. Persona Chaining
|
|
222
|
+
Use multiple personas consecutively for complex tasks:
|
|
223
|
+
```bash
|
|
224
|
+
Architect → Developer → Debugger → Optimizer → Documenter
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### 2. Persona Customization
|
|
228
|
+
Adjust persona behavior for project-specific requirements
|
|
229
|
+
(Planned for future updates)
|
|
230
|
+
|
|
231
|
+
### 3. Team Workflow Integration
|
|
232
|
+
Automatic persona switching based on Git branch or PR status
|
|
233
|
+
(Use with Feature-Git integration feature)
|
|
234
|
+
|
|
235
|
+
## Conclusion
|
|
236
|
+
|
|
237
|
+
The AI Persona system is a powerful tool that can significantly improve the efficiency and quality of development work. By understanding the characteristics of each persona and utilizing them appropriately, collaboration with Claude Code becomes more productive and effective.
|
|
238
|
+
|
|
239
|
+
We encourage you to develop persona utilization strategies optimized for each project through continuous use and feedback.
|
|
@@ -0,0 +1,313 @@
|
|
|
1
|
+
[Read in English](context-compression-guide.md)
|
|
2
|
+
|
|
3
|
+
# Context 압축 모드 사용 가이드
|
|
4
|
+
|
|
5
|
+
## 개요
|
|
6
|
+
|
|
7
|
+
Context 압축 기능은 Claude Code와의 대화에서 토큰 사용량을 최적화하여 더 긴 대화와 더 많은 정보를 처리할 수 있도록 돕는 기능입니다. 3가지 압축 모드를 통해 프로젝트의 특성과 작업 요구사항에 맞는 최적의 압축 전략을 선택할 수 있습니다.
|
|
8
|
+
|
|
9
|
+
## 압축의 필요성
|
|
10
|
+
|
|
11
|
+
### 토큰 제한 문제
|
|
12
|
+
- Claude Code는 대화당 토큰 제한이 있음
|
|
13
|
+
- 대규모 코드베이스 작업 시 컨텍스트 초과 빈번
|
|
14
|
+
- 긴 대화 세션에서 이전 정보 손실 가능
|
|
15
|
+
|
|
16
|
+
### Context 압축의 이점
|
|
17
|
+
- 토큰 사용량 평균 50% 이상 절감
|
|
18
|
+
- 더 많은 파일과 정보 동시 처리
|
|
19
|
+
- 대화 지속성 향상
|
|
20
|
+
- 비용 효율성 증대
|
|
21
|
+
|
|
22
|
+
## 압축 모드 상세
|
|
23
|
+
|
|
24
|
+
### 1. Aggressive (공격적) 모드
|
|
25
|
+
|
|
26
|
+
**압축률**: 70-80%
|
|
27
|
+
**품질 손실**: 중간-높음
|
|
28
|
+
**처리 속도**: 빠름
|
|
29
|
+
|
|
30
|
+
**특징**:
|
|
31
|
+
- 최대한의 토큰 절약
|
|
32
|
+
- 핵심 정보만 유지
|
|
33
|
+
- 세부사항과 컨텍스트 일부 손실
|
|
34
|
+
- 짧고 간결한 표현 사용
|
|
35
|
+
|
|
36
|
+
**압축 전략**:
|
|
37
|
+
- 주석과 문서화 제거
|
|
38
|
+
- 반복 코드 패턴 요약
|
|
39
|
+
- 변수명 단축
|
|
40
|
+
- 공백과 포맷팅 최소화
|
|
41
|
+
- 중복 정보 제거
|
|
42
|
+
|
|
43
|
+
**적합한 상황**:
|
|
44
|
+
- 매우 큰 코드베이스 탐색
|
|
45
|
+
- 개괄적인 이해가 필요한 경우
|
|
46
|
+
- 빠른 프로토타이핑
|
|
47
|
+
- 토큰 예산이 매우 제한적인 경우
|
|
48
|
+
|
|
49
|
+
**사용 예시**:
|
|
50
|
+
```bash
|
|
51
|
+
/project:aiwf:compress_context:aggressive
|
|
52
|
+
# 또는
|
|
53
|
+
/프로젝트:aiwf:컨텍스트_압축:공격적
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 2. Balanced (균형) 모드
|
|
57
|
+
|
|
58
|
+
**압축률**: 50-60%
|
|
59
|
+
**품질 손실**: 낮음
|
|
60
|
+
**처리 속도**: 보통
|
|
61
|
+
|
|
62
|
+
**특징**:
|
|
63
|
+
- 압축률과 품질의 균형
|
|
64
|
+
- 중요 정보 보존
|
|
65
|
+
- 가독성 유지
|
|
66
|
+
- 구조적 무결성 보장
|
|
67
|
+
|
|
68
|
+
**압축 전략**:
|
|
69
|
+
- 중복 주석 정리
|
|
70
|
+
- 긴 설명을 요약
|
|
71
|
+
- 사용하지 않는 코드 제거
|
|
72
|
+
- 스마트 공백 관리
|
|
73
|
+
- 컨텍스트 기반 압축
|
|
74
|
+
|
|
75
|
+
**적합한 상황**:
|
|
76
|
+
- 일반적인 개발 작업
|
|
77
|
+
- 코드 리뷰와 분석
|
|
78
|
+
- 버그 수정 작업
|
|
79
|
+
- 기능 구현과 수정
|
|
80
|
+
|
|
81
|
+
**사용 예시**:
|
|
82
|
+
```bash
|
|
83
|
+
/project:aiwf:compress_context:balanced
|
|
84
|
+
# 또는
|
|
85
|
+
/프로젝트:aiwf:컨텍스트_압축:균형
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 3. Conservative (보수적) 모드
|
|
89
|
+
|
|
90
|
+
**압축률**: 30-40%
|
|
91
|
+
**품질 손실**: 매우 낮음
|
|
92
|
+
**처리 속도**: 느림
|
|
93
|
+
|
|
94
|
+
**특징**:
|
|
95
|
+
- 최소한의 정보 손실
|
|
96
|
+
- 모든 중요 세부사항 보존
|
|
97
|
+
- 원본과 높은 유사성
|
|
98
|
+
- 정밀한 작업 가능
|
|
99
|
+
|
|
100
|
+
**압축 전략**:
|
|
101
|
+
- 명백한 중복만 제거
|
|
102
|
+
- 포맷팅 유지
|
|
103
|
+
- 주석과 문서 보존
|
|
104
|
+
- 의미 있는 공백 유지
|
|
105
|
+
- 안전한 압축만 적용
|
|
106
|
+
|
|
107
|
+
**적합한 상황**:
|
|
108
|
+
- 정밀한 디버깅
|
|
109
|
+
- 보안 감사
|
|
110
|
+
- 성능 최적화
|
|
111
|
+
- 중요한 프로덕션 코드 작업
|
|
112
|
+
|
|
113
|
+
**사용 예시**:
|
|
114
|
+
```bash
|
|
115
|
+
/project:aiwf:compress_context:conservative
|
|
116
|
+
# 또는
|
|
117
|
+
/프로젝트:aiwf:컨텍스트_압축:보수적
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## 모드 선택 가이드
|
|
121
|
+
|
|
122
|
+
### 의사결정 트리
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
작업의 성격은?
|
|
126
|
+
├─ 탐색/개요 파악 → Aggressive
|
|
127
|
+
├─ 일반 개발 작업 → Balanced
|
|
128
|
+
└─ 정밀/중요 작업 → Conservative
|
|
129
|
+
|
|
130
|
+
토큰 예산은?
|
|
131
|
+
├─ 매우 제한적 → Aggressive
|
|
132
|
+
├─ 보통 → Balanced
|
|
133
|
+
└─ 여유 있음 → Conservative
|
|
134
|
+
|
|
135
|
+
필요한 정보 수준은?
|
|
136
|
+
├─ 개요만 → Aggressive
|
|
137
|
+
├─ 주요 로직 → Balanced
|
|
138
|
+
└─ 모든 세부사항 → Conservative
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 작업별 권장 모드
|
|
142
|
+
|
|
143
|
+
| 작업 유형 | 권장 모드 | 이유 |
|
|
144
|
+
|----------|----------|------|
|
|
145
|
+
| 아키텍처 리뷰 | Aggressive | 전체 구조 파악 중요 |
|
|
146
|
+
| 버그 수정 | Balanced | 컨텍스트와 세부사항 균형 필요 |
|
|
147
|
+
| 성능 최적화 | Conservative | 모든 세부사항 중요 |
|
|
148
|
+
| 코드 리팩토링 | Balanced | 구조 유지하며 개선 |
|
|
149
|
+
| 보안 감사 | Conservative | 세부사항 놓치면 안됨 |
|
|
150
|
+
| 문서 생성 | Aggressive | 핵심 기능만 필요 |
|
|
151
|
+
| 테스트 작성 | Balanced | 주요 로직 이해 필요 |
|
|
152
|
+
|
|
153
|
+
## 사용 방법
|
|
154
|
+
|
|
155
|
+
### 기본 명령어 구조
|
|
156
|
+
```bash
|
|
157
|
+
/project:aiwf:compress_context[:<mode>]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 모드별 사용 예시
|
|
161
|
+
|
|
162
|
+
**Aggressive 모드로 전체 프로젝트 압축**:
|
|
163
|
+
```bash
|
|
164
|
+
/project:aiwf:compress_context:aggressive
|
|
165
|
+
"src 폴더의 모든 JavaScript 파일을 압축해서 보여주세요"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Balanced 모드로 특정 모듈 압축**:
|
|
169
|
+
```bash
|
|
170
|
+
/project:aiwf:compress_context:balanced
|
|
171
|
+
"authentication 모듈의 주요 로직을 압축해서 분석해주세요"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**Conservative 모드로 중요 파일 압축**:
|
|
175
|
+
```bash
|
|
176
|
+
/project:aiwf:compress_context:conservative
|
|
177
|
+
"payment.js 파일을 최소한만 압축해서 보안 취약점을 검토해주세요"
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### 고급 사용법
|
|
181
|
+
|
|
182
|
+
**1. 선택적 압축**
|
|
183
|
+
특정 파일이나 디렉토리만 압축:
|
|
184
|
+
```bash
|
|
185
|
+
/project:aiwf:compress_context:balanced
|
|
186
|
+
"src/api 폴더만 압축하고, tests 폴더는 제외해주세요"
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
**2. 다단계 압축**
|
|
190
|
+
큰 프로젝트를 단계적으로 압축:
|
|
191
|
+
```bash
|
|
192
|
+
# 1단계: 전체 구조 파악
|
|
193
|
+
/project:aiwf:compress_context:aggressive
|
|
194
|
+
"전체 프로젝트 구조를 보여주세요"
|
|
195
|
+
|
|
196
|
+
# 2단계: 관심 영역 상세 분석
|
|
197
|
+
/project:aiwf:compress_context:balanced
|
|
198
|
+
"인증 관련 모듈을 더 자세히 분석해주세요"
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
**3. 압축 제외 설정**
|
|
202
|
+
중요한 부분은 압축에서 제외:
|
|
203
|
+
```bash
|
|
204
|
+
/project:aiwf:compress_context:aggressive
|
|
205
|
+
"전체를 압축하되, security.js는 압축하지 마세요"
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
## 압축 품질 메트릭
|
|
209
|
+
|
|
210
|
+
### 압축률 계산
|
|
211
|
+
```
|
|
212
|
+
압축률 = (원본 토큰 - 압축 토큰) / 원본 토큰 × 100
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 품질 지표
|
|
216
|
+
|
|
217
|
+
**정보 보존율**:
|
|
218
|
+
- Aggressive: 60-70%
|
|
219
|
+
- Balanced: 85-90%
|
|
220
|
+
- Conservative: 95-98%
|
|
221
|
+
|
|
222
|
+
**구조 무결성**:
|
|
223
|
+
- Aggressive: 기본 구조만
|
|
224
|
+
- Balanced: 전체 구조 유지
|
|
225
|
+
- Conservative: 완전 보존
|
|
226
|
+
|
|
227
|
+
**가독성 점수**:
|
|
228
|
+
- Aggressive: 낮음 (기계 친화적)
|
|
229
|
+
- Balanced: 중간 (개발자 친화적)
|
|
230
|
+
- Conservative: 높음 (원본과 유사)
|
|
231
|
+
|
|
232
|
+
## 성능 고려사항
|
|
233
|
+
|
|
234
|
+
### 처리 시간
|
|
235
|
+
- Aggressive: 가장 빠름 (단순 규칙 적용)
|
|
236
|
+
- Balanced: 보통 (컨텍스트 분석 포함)
|
|
237
|
+
- Conservative: 느림 (세밀한 분석 필요)
|
|
238
|
+
|
|
239
|
+
### 메모리 사용량
|
|
240
|
+
- 모든 모드: 원본 크기의 1.5-2배 메모리 필요
|
|
241
|
+
- 대용량 파일은 청크 단위로 처리
|
|
242
|
+
|
|
243
|
+
### 압축 캐싱
|
|
244
|
+
- 동일 파일 재압축 시 캐시 활용
|
|
245
|
+
- 캐시 유효 기간: 15분
|
|
246
|
+
- 파일 변경 시 자동 갱신
|
|
247
|
+
|
|
248
|
+
## 문제 해결
|
|
249
|
+
|
|
250
|
+
### 과도한 정보 손실
|
|
251
|
+
**증상**: 중요한 정보가 누락됨
|
|
252
|
+
**해결**:
|
|
253
|
+
1. 더 보수적인 모드로 변경
|
|
254
|
+
2. 중요 부분 압축 제외
|
|
255
|
+
3. 선택적 압축 사용
|
|
256
|
+
|
|
257
|
+
### 압축 효과 미미
|
|
258
|
+
**증상**: 토큰 절약이 기대에 못 미침
|
|
259
|
+
**해결**:
|
|
260
|
+
1. 더 공격적인 모드 시도
|
|
261
|
+
2. 불필요한 파일 제외
|
|
262
|
+
3. 압축 전 수동 정리
|
|
263
|
+
|
|
264
|
+
### 압축 오류
|
|
265
|
+
**증상**: 압축 중 오류 발생
|
|
266
|
+
**해결**:
|
|
267
|
+
1. 파일 인코딩 확인
|
|
268
|
+
2. 특수 문자나 형식 검토
|
|
269
|
+
3. 작은 단위로 나누어 압축
|
|
270
|
+
|
|
271
|
+
## 모범 사례
|
|
272
|
+
|
|
273
|
+
### 1. 작업 시작 전 모드 선택
|
|
274
|
+
- 작업 성격을 먼저 파악
|
|
275
|
+
- 적절한 모드 미리 선택
|
|
276
|
+
- 필요시 중간에 변경
|
|
277
|
+
|
|
278
|
+
### 2. 점진적 압축
|
|
279
|
+
- 큰 프로젝트는 단계적 접근
|
|
280
|
+
- Aggressive로 시작해 전체 파악
|
|
281
|
+
- 필요 부분만 Balanced/Conservative로 상세 분석
|
|
282
|
+
|
|
283
|
+
### 3. 압축 제외 활용
|
|
284
|
+
- 중요 설정 파일은 제외
|
|
285
|
+
- 보안 관련 코드는 제외
|
|
286
|
+
- 복잡한 알고리즘은 제외
|
|
287
|
+
|
|
288
|
+
### 4. 모드 조합
|
|
289
|
+
```bash
|
|
290
|
+
# 예시: 하이브리드 접근
|
|
291
|
+
1. 전체 구조: Aggressive
|
|
292
|
+
2. 핵심 모듈: Balanced
|
|
293
|
+
3. 문제 영역: Conservative
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
## 미래 개선사항
|
|
297
|
+
|
|
298
|
+
### 계획된 기능
|
|
299
|
+
1. **스마트 자동 모드**: AI가 작업 성격을 파악해 자동 선택
|
|
300
|
+
2. **커스텀 압축 규칙**: 프로젝트별 맞춤 압축 설정
|
|
301
|
+
3. **압축 프리셋**: 자주 사용하는 설정 저장
|
|
302
|
+
4. **실시간 압축 미리보기**: 압축 결과 사전 확인
|
|
303
|
+
|
|
304
|
+
### 성능 목표
|
|
305
|
+
- 압축 속도 30% 개선
|
|
306
|
+
- 메모리 사용량 20% 감소
|
|
307
|
+
- 압축률 10% 추가 개선
|
|
308
|
+
|
|
309
|
+
## 결론
|
|
310
|
+
|
|
311
|
+
Context 압축 기능은 Claude Code와의 효율적인 협업을 위한 필수 도구입니다. 각 모드의 특성을 이해하고 작업에 맞는 모드를 선택하면, 토큰 제한 없이 대규모 프로젝트에서도 원활한 개발이 가능합니다.
|
|
312
|
+
|
|
313
|
+
지속적인 사용을 통해 여러분의 프로젝트에 최적화된 압축 전략을 개발하시기 바랍니다.
|