aiwf 0.3.2 → 0.3.4
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/config/language.json +1 -1
- package/.aiwf/installed.flag +1 -0
- package/.aiwf/sessions/session_1752877859489_1t7n2fhdb.json +7 -0
- package/.aiwf/sessions/session_1752877859515_cwdv211ry.json +7 -0
- package/.aiwf/sessions/session_1752877860664_huziadmbo.json +7 -0
- package/.aiwf/sessions/session_1752877860666_kyr5u1np6.json +7 -0
- package/.aiwf/sessions/session_1752877861848_9yinepw3t.json +7 -0
- package/.aiwf/sessions/session_1752877861874_y32sputuc.json +7 -0
- package/.aiwf/sessions/session_1752877862685_ivxbl5rhz.json +7 -0
- package/.aiwf/sessions/session_1752877862820_wnq4glvxi.json +7 -0
- package/.aiwf/sessions/session_1752877864632_3ebnpaelb.json +7 -0
- package/.aiwf/sessions/session_1752877864879_b9zgjcb7d.json +7 -0
- package/.aiwf/sessions/session_1752877865533_x14m1vodi.json +7 -0
- package/.aiwf/sessions/session_1752877865562_gkoh19n7d.json +7 -0
- package/.aiwf/sessions/session_1752877866333_wp8qpdcoh.json +7 -0
- package/.aiwf/sessions/session_1752877866509_dawntfpab.json +7 -0
- package/.aiwf/sessions/session_1752877866890_plc5vfucl.json +7 -0
- package/.aiwf/sessions/session_1752877866895_ga8hmq3oi.json +7 -0
- package/.aiwf/sessions/session_1752877867761_ayjp4v5f5.json +7 -0
- package/.aiwf/sessions/session_1752877867892_lfz6jy252.json +7 -0
- package/.aiwf/sessions/session_1752877868139_7bqd9ubli.json +7 -0
- package/.aiwf/sessions/session_1752877868162_zq3ofjbsh.json +7 -0
- package/.aiwf/sessions/session_1752877869054_7rlgm9jt6.json +7 -0
- package/.aiwf/sessions/session_1752877869477_ax3nhbxzr.json +7 -0
- package/.aiwf/sessions/session_1752877870095_6hgp4vl1e.json +7 -0
- package/.aiwf/sessions/session_1752877870381_qfcrdg4li.json +7 -0
- package/.aiwf/sessions/session_1752877871895_pgd5vllhz.json +7 -0
- package/.aiwf/sessions/session_1752877872199_jbhv2g2da.json +7 -0
- package/.aiwf/sessions/session_1752877872680_x04wpffu6.json +7 -0
- package/.aiwf/sessions/session_1752877872895_3y4vbeauo.json +7 -0
- package/.aiwf/sessions/session_1752877873178_3maolzc6b.json +7 -0
- package/.aiwf/sessions/session_1752877873180_ytm83j07f.json +7 -0
- package/.aiwf/sessions/session_1752877874217_dp56c9t42.json +7 -0
- package/.aiwf/sessions/session_1752877874415_epwp1g1og.json +7 -0
- package/.aiwf/sessions/session_1752877874454_heicyuryb.json +7 -0
- package/.aiwf/sessions/session_1752877874869_1c2illeu5.json +7 -0
- package/.aiwf/sessions/session_1752877874879_k1vo4vxyx.json +7 -0
- package/.aiwf/sessions/session_1752877874913_bwgyiz9bp.json +7 -0
- package/.aiwf/sessions/session_1752877876218_44807kztz.json +7 -0
- package/.aiwf/sessions/session_1752877876515_qkhjv5kpw.json +7 -0
- package/.aiwf/sessions/session_1752877876543_p605aud1m.json +7 -0
- package/.aiwf/sessions/session_1752877876819_l65w7ifck.json +7 -0
- package/.aiwf/sessions/session_1752877876867_xrhzss4we.json +7 -0
- package/.aiwf/sessions/session_1752877876872_u7aso54qb.json +7 -0
- package/.aiwf/sessions/session_1752877877705_telnfg4o6.json +7 -0
- package/.aiwf/sessions/session_1752877878285_6s45im2ib.json +7 -0
- package/.aiwf/sessions/session_1752877878506_v0dvguqhz.json +7 -0
- package/.aiwf/sessions/session_1752877878581_3ri3yc66a.json +7 -0
- package/.aiwf/sessions/session_1752877878756_a82x9s2pd.json +7 -0
- package/.aiwf/sessions/session_1752877878886_20pjsfour.json +7 -0
- package/.aiwf/sessions/session_1752877880266_fm1ydjw0g.json +7 -0
- package/.aiwf/sessions/session_1752877881149_xbat4z03d.json +7 -0
- package/.aiwf/sessions/session_1752877881551_qy5sic9qs.json +7 -0
- package/.aiwf/sessions/session_1752877881554_24ugd96wu.json +7 -0
- package/.aiwf/sessions/session_1752877881797_e9mm25uh0.json +7 -0
- package/.aiwf/sessions/session_1752877881822_bxvjj8c9g.json +7 -0
- package/.aiwf/sessions/session_1752877881890_jv7l6jve3.json +7 -0
- package/.aiwf/sessions/session_1752877881991_f0qugdtcq.json +7 -0
- package/.aiwf/sessions/session_1752877883387_0bvw9rvnx.json +7 -0
- package/.aiwf/sessions/session_1752877883820_q6g2md2up.json +7 -0
- package/.aiwf/sessions/session_1752877884393_sqr7trvjl.json +7 -0
- package/.aiwf/sessions/session_1752877884500_whtypmzlf.json +7 -0
- package/.aiwf/sessions/session_1752877884645_y9mvvxli1.json +7 -0
- package/.aiwf/sessions/session_1752877884733_hk46eenel.json +7 -0
- package/.aiwf/sessions/session_1752877884738_c62j6214r.json +7 -0
- package/.aiwf/sessions/session_1752877884771_temhxehoz.json +7 -0
- package/.aiwf/sessions/session_1752877885643_6v5fcktc7.json +7 -0
- package/.aiwf/sessions/session_1752877886426_ee8di2fqh.json +7 -0
- package/.aiwf/sessions/session_1752877886549_3xj6tdoew.json +7 -0
- package/.aiwf/sessions/session_1752877886604_aj80yyfco.json +7 -0
- package/.aiwf/sessions/session_1752877886702_2b8841vyg.json +7 -0
- package/.aiwf/sessions/session_1752877886712_ntqc8b8bz.json +7 -0
- package/.aiwf/sessions/session_1752877886968_946m8tbw6.json +7 -0
- package/.aiwf/sessions/session_1752877887008_wg6zfg8dn.json +7 -0
- package/.aiwf/sessions/session_1752877888479_ciiu2qiqs.json +7 -0
- package/.aiwf/sessions/session_1752877889330_ravg8l66k.json +7 -0
- package/.aiwf/sessions/session_1752877889542_7zepkhjkc.json +7 -0
- package/.aiwf/sessions/session_1752877889638_ev4htqiu0.json +7 -0
- package/.aiwf/sessions/session_1752877889956_szphy2qma.json +7 -0
- package/.aiwf/sessions/session_1752877890220_o6aaa57tt.json +7 -0
- package/.aiwf/sessions/session_1752877890527_v2loy5vu1.json +7 -0
- package/.aiwf/sessions/session_1752877890572_cwq8fiuma.json +7 -0
- package/.aiwf/sessions/session_1752877892200_sgcwq1alt.json +7 -0
- package/.aiwf/sessions/session_1752877892268_v8kexpbc5.json +7 -0
- package/.aiwf/sessions/session_1752877892384_1gbbgrp4y.json +7 -0
- package/.aiwf/sessions/session_1752877893568_9p2n5p31a.json +7 -0
- package/.aiwf/sessions/session_1752877893727_un34a5tvp.json +7 -0
- package/.aiwf/sessions/session_1752877893778_01j79sw9i.json +7 -0
- package/.aiwf/sessions/session_1752877894053_jrhba6wko.json +7 -0
- package/.aiwf/sessions/session_1752877894082_x3bghawox.json +7 -0
- package/.aiwf/sessions/session_1752877894500_iytiav2ku.json +7 -0
- package/.aiwf/sessions/session_1752877894667_ucn0gc2ge.json +7 -0
- package/.aiwf/test-results-s02.json +4 -4
- package/.claude/commands/aiwf/aiwf_changelog.md +82 -0
- package/.claude/commands/aiwf/aiwf_code_review.md +88 -0
- package/.claude/commands/aiwf/aiwf_commit.md +160 -0
- package/.claude/commands/aiwf/aiwf_compress_context.md +116 -0
- package/.claude/commands/aiwf/aiwf_create_feature_ledger.md +54 -0
- package/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
- package/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
- package/.claude/commands/aiwf/aiwf_create_prd.md +280 -0
- package/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
- package/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
- package/.claude/commands/aiwf/aiwf_default_mode.md +44 -0
- package/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
- package/.claude/commands/aiwf/aiwf_do_task.md +109 -0
- package/.claude/commands/aiwf/aiwf_docs.md +225 -0
- package/.claude/commands/aiwf/aiwf_get_feature_details.md +78 -0
- package/.claude/commands/aiwf/aiwf_infinite.md +202 -0
- package/.claude/commands/aiwf/aiwf_initialize.md +134 -0
- package/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
- package/.claude/commands/aiwf/aiwf_link_feature_to_milestone.md +57 -0
- package/.claude/commands/aiwf/aiwf_list_features.md +54 -0
- package/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
- package/.claude/commands/aiwf/aiwf_persona_architect.md +48 -0
- package/.claude/commands/aiwf/aiwf_persona_backend.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_data_analyst.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_frontend.md +37 -0
- package/.claude/commands/aiwf/aiwf_persona_security.md +48 -0
- package/.claude/commands/aiwf/aiwf_persona_status.md +50 -0
- package/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
- package/.claude/commands/aiwf/aiwf_prime.md +9 -0
- package/.claude/commands/aiwf/aiwf_project_review.md +261 -0
- package/.claude/commands/aiwf/aiwf_switch_language.md +160 -0
- package/.claude/commands/aiwf/aiwf_test.md +124 -0
- package/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
- package/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +210 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
- package/.claude/commands/aiwf/aiwf_ultrathink_general.md +305 -0
- package/.claude/commands/aiwf/aiwf_update_docs_kr.md +25 -0
- package/.claude/commands/aiwf/aiwf_update_feature_status.md +53 -0
- package/.claude/commands/aiwf/aiwf_yolo.md +300 -0
- package/.eslintrc.json +26 -0
- package/.prettierrc +10 -0
- package/CLAUDE.md +154 -54
- package/README.ko.md +25 -0
- package/README.md +25 -0
- package/TEST_RECOVERY_PLAN.md +68 -0
- package/docs/CLEANUP_RECOMMENDATIONS.md +86 -0
- package/docs/CLI_USAGE_GUIDE.md +479 -0
- package/package.json +9 -9
- package/scripts/update-feature-status.js +70 -0
- package/{lib → src/cli}/cache-cli.js +4 -4
- package/src/cli/index.js +165 -0
- package/{language-cli.js → src/cli/language-cli.js} +11 -4
- package/src/commands/cache-templates.js +209 -0
- package/src/commands/create-offline.js +86 -0
- package/src/commands/create-project.js +151 -0
- package/src/lib/backup-manager.js +270 -0
- package/src/lib/file-downloader.js +208 -0
- package/src/lib/installer.js +676 -0
- package/src/lib/rollback-manager.js +418 -0
- package/src/lib/validator.js +561 -0
- package/src/utils/git-integration.js +173 -0
- package/{language-utils.js → src/utils/language-utils.js} +2 -1
- package/src/utils/messages.js +136 -0
- package/src/utils/paths.js +130 -0
- package/tests/application.test.js +2 -2
- package/tests/installer.test.js +2 -2
- package/tests/integration/ai-persona-system.test.js +4 -4
- package/tests/integration/test-persona-system/docs/README.md +1 -0
- package/tests/integration/test-persona-system/package.json +1 -0
- package/tests/integration/test-persona-system/src/auth.js +1 -0
- package/tests/integration/test-persona-system/src/index.js +1 -0
- package/tests/integration/test-persona-system/test/test.js +1 -0
- package/tests/language-utils.test.js +1 -1
- package/tests/temp_invalid_json/invalid.json +1 -0
- package/tests/unit/ai-persona-manager.test.js +7 -7
- package/.aiwf/05_DOCUMENTATION/performance-report.md +0 -33
- package/.aiwf/test-cache/86c7f9e80251abb8bedd58953ab0d1779e46b4f43ea33b63bffdb778106373b0.json +0 -6
- package/.aiwf/test-cache/9e252a90b80fce0585d7ed0646e7a9b4343e109f661f42a3ae678ba1ec5e22c7.json +0 -7
- package/.aiwf/token-data/alerts.json +0 -293
- package/.aiwf/token-data/monitor-config.json +0 -12
- package/CHANGELOG_M02.md +0 -52
- package/claude-code/aiwf/ko/bin/aiwf-create.js +0 -56
- package/claude-code/aiwf/ko/bin/aiwf.js +0 -21
- package/claude-code/aiwf/ko/docs/00_PROJECT_MANIFEST.md +0 -183
- package/claude-code/aiwf/ko/docs/ARCHITECTURE.md +0 -121
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_ADVANCED_USE_CASES.md +0 -412
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_API_REFERENCE.md +0 -361
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_COMMANDS_GUIDE.md +0 -254
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_FAQ.md +0 -365
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_SYSTEM_OVERVIEW.md +0 -305
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_USER_GUIDE.md +0 -416
- package/claude-code/aiwf/ko/docs/FEATURE_LEDGER_/354/213/234/354/236/221_/352/260/200/354/235/264/353/223/234.md +0 -247
- package/claude-code/aiwf/ko/token-data/alerts.json +0 -293
- package/claude-code/aiwf/ko/token-data/monitor-config.json +0 -12
- package/docs/m02-dod-checklist.md +0 -125
- package/docs/m02-gap-analysis.md +0 -214
- package/docs/m02-milestone-completion-report.md +0 -186
- package/docs/m02-milestone-executive-summary.md +0 -68
- package/index.js +0 -1947
- package/lib/cache-integration.js +0 -401
- package/lib/file-batch-processor.js +0 -401
- package/lib/performance-benchmark.js +0 -621
- package/lib/template-manager.js +0 -310
- package/scripts/validate-commands.cjs +0 -338
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_aggressive_persona.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_minimal_persona.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_stats.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_compress_with_persona.md +0 -0
- /package/{.aiwf/.claude → .claude}/commands/aiwf/aiwf_evaluate.md +0 -0
- /package/{lib → src/lib}/ai-persona-manager.js +0 -0
- /package/{lib → src/lib}/cache-system.js +0 -0
- /package/{lib → src/lib}/context-engine.js +0 -0
- /package/{lib → src/lib}/memory-profiler.js +0 -0
- /package/{lib → src/lib}/metrics-collector.js +0 -0
- /package/{lib → src/lib}/offline-detector.js +0 -0
- /package/{lib → src/lib}/task-analyzer.js +0 -0
- /package/{lib → src/lib}/template-cache-system.js +0 -0
- /package/{lib → src/lib}/template-downloader.js +0 -0
- /package/{lib → src/lib}/template-version-manager.js +0 -0
- /package/{lib → src/lib}/token-optimizer.js +0 -0
package/.eslintrc.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"extends": ["eslint:recommended"],
|
|
3
|
+
"parserOptions": {
|
|
4
|
+
"ecmaVersion": 2022,
|
|
5
|
+
"sourceType": "module"
|
|
6
|
+
},
|
|
7
|
+
"env": {
|
|
8
|
+
"node": true,
|
|
9
|
+
"es2022": true
|
|
10
|
+
},
|
|
11
|
+
"rules": {
|
|
12
|
+
"no-console": "warn",
|
|
13
|
+
"no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
|
|
14
|
+
"prefer-const": "error",
|
|
15
|
+
"no-var": "error",
|
|
16
|
+
"eqeqeq": ["error", "always"],
|
|
17
|
+
"curly": ["error", "all"],
|
|
18
|
+
"quotes": ["error", "single"],
|
|
19
|
+
"semi": ["error", "always"],
|
|
20
|
+
"indent": ["error", 2],
|
|
21
|
+
"no-trailing-spaces": "error",
|
|
22
|
+
"comma-dangle": ["error", "never"],
|
|
23
|
+
"object-curly-spacing": ["error", "always"],
|
|
24
|
+
"array-bracket-spacing": ["error", "never"]
|
|
25
|
+
}
|
|
26
|
+
}
|
package/.prettierrc
ADDED
package/CLAUDE.md
CHANGED
|
@@ -20,65 +20,139 @@ The AIWF project is organized as follows:
|
|
|
20
20
|
|
|
21
21
|
```
|
|
22
22
|
aiwf/
|
|
23
|
-
├──
|
|
24
|
-
│ ├──
|
|
25
|
-
│
|
|
26
|
-
│
|
|
27
|
-
│ └──
|
|
23
|
+
├── ai-tools/ # AI tool-specific configurations
|
|
24
|
+
│ ├── claude-code/ # Claude Code specific settings
|
|
25
|
+
│ ├── cursor/ # Cursor AI integration
|
|
26
|
+
│ ├── windsurf/ # Windsurf integration
|
|
27
|
+
│ └── github-copilot/ # GitHub Copilot integration
|
|
28
|
+
├── commands/ # AIWF command implementations
|
|
29
|
+
│ ├── ai-persona.js # AI persona management
|
|
30
|
+
│ ├── compress-context.js # Context compression
|
|
31
|
+
│ ├── evaluate.js # Evaluation functionality
|
|
32
|
+
│ ├── feature-ledger.js # Feature tracking
|
|
33
|
+
│ └── token-tracking.js # Token usage monitoring
|
|
34
|
+
├── config/ # Configuration files
|
|
35
|
+
│ ├── commit-patterns.js # Git commit patterns
|
|
36
|
+
│ └── language.json # Language settings
|
|
28
37
|
├── docs/ # Project documentation
|
|
38
|
+
├── feature-ledger/ # Feature tracking JSON files
|
|
39
|
+
│ ├── FL-001-authentication.json
|
|
40
|
+
│ └── feature-index.json
|
|
41
|
+
├── hooks/ # Git hooks and installation scripts
|
|
42
|
+
│ ├── install-hooks.sh # Hook installation script
|
|
43
|
+
│ └── post-commit # Post-commit hook
|
|
29
44
|
├── lib/ # Core library modules
|
|
30
|
-
├──
|
|
45
|
+
├── personas/ # AI persona definitions and knowledge bases
|
|
46
|
+
├── rules/ # Development rules and guidelines
|
|
47
|
+
│ ├── global/ # Global development rules
|
|
48
|
+
│ └── manual/ # Manual operation guides
|
|
49
|
+
├── scripts/ # Build and utility scripts
|
|
50
|
+
├── templates/ # Project templates
|
|
51
|
+
│ ├── api-server/ # Express.js API server template
|
|
52
|
+
│ ├── npm-library/ # NPM library template
|
|
53
|
+
│ └── web-app/ # React web app template
|
|
31
54
|
├── tests/ # Test suites
|
|
32
55
|
│ ├── integration/ # Integration tests
|
|
33
56
|
│ └── unit/ # Unit tests
|
|
34
|
-
├──
|
|
35
|
-
├── rules/ # Development rules and guidelines
|
|
57
|
+
├── utils/ # Utility modules
|
|
36
58
|
├── package.json # NPM package configuration
|
|
37
59
|
├── CLAUDE.md # This file - Claude Code guidance
|
|
38
60
|
└── README.md # Project documentation
|
|
39
61
|
```
|
|
40
62
|
|
|
41
|
-
##
|
|
63
|
+
## AI Tools Directory
|
|
64
|
+
|
|
65
|
+
The `ai-tools/` directory contains configurations for various AI coding assistants:
|
|
66
|
+
|
|
67
|
+
- **claude-code/**: Claude Code specific settings and templates
|
|
68
|
+
- **cursor/**: Cursor AI integration files
|
|
69
|
+
- **windsurf/**: Windsurf configuration
|
|
70
|
+
- **github-copilot/**: GitHub Copilot integration
|
|
71
|
+
- **augment/**: Augment AI tool configuration
|
|
72
|
+
|
|
73
|
+
Each tool directory includes:
|
|
74
|
+
- `config.json`: Tool-specific configuration
|
|
75
|
+
- `template/`: Template files for that specific AI tool
|
|
76
|
+
- `README.md`: Documentation for the integration
|
|
77
|
+
|
|
78
|
+
## Commands Directory
|
|
42
79
|
|
|
43
|
-
The `
|
|
80
|
+
The `commands/` directory contains all AIWF command implementations:
|
|
44
81
|
|
|
45
|
-
|
|
46
|
-
- **
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
82
|
+
- **ai-persona.js**: Manages AI personas and their behaviors
|
|
83
|
+
- **compress-context.js**: Compresses context to optimize token usage
|
|
84
|
+
- **evaluate.js**: Evaluates code quality and AI responses
|
|
85
|
+
- **feature-ledger.js**: Tracks features and their development status
|
|
86
|
+
- **feature-commit-report.js**: Generates reports from git commits
|
|
87
|
+
- **persona-context-apply.js**: Applies persona contexts to AI interactions
|
|
88
|
+
- **scan-git-history.js**: Analyzes git history for insights
|
|
89
|
+
- **sync-feature-commits.js**: Synchronizes feature commits with ledger
|
|
90
|
+
- **token-tracking.js**: Monitors and reports token usage
|
|
53
91
|
|
|
54
|
-
|
|
55
|
-
- compression-*.js - Various compression strategies
|
|
56
|
-
- git-utils.js - Git operation utilities
|
|
57
|
-
- token-*.js - Token tracking and optimization
|
|
58
|
-
- text-summarizer.js - Text summarization utilities
|
|
92
|
+
## Templates Directory
|
|
59
93
|
|
|
60
|
-
|
|
61
|
-
- commit-patterns.js - Git commit pattern definitions
|
|
94
|
+
The `templates/` directory provides starter templates for different project types:
|
|
62
95
|
|
|
63
|
-
- **
|
|
64
|
-
-
|
|
65
|
-
-
|
|
96
|
+
- **api-server/**: Express.js API server with TypeScript
|
|
97
|
+
- Includes Swagger documentation
|
|
98
|
+
- AIWF middleware integration
|
|
99
|
+
- Jest testing setup
|
|
100
|
+
|
|
101
|
+
- **npm-library/**: NPM package template
|
|
102
|
+
- TypeScript configuration
|
|
103
|
+
- Rollup bundling
|
|
104
|
+
- Complete testing setup
|
|
105
|
+
|
|
106
|
+
- **web-app/**: React + Vite web application
|
|
107
|
+
- TypeScript + Tailwind CSS
|
|
108
|
+
- AIWF dashboard components
|
|
109
|
+
- State management setup
|
|
66
110
|
|
|
67
|
-
|
|
111
|
+
## Feature Ledger Directory
|
|
68
112
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
-
|
|
72
|
-
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
-
|
|
113
|
+
The `feature-ledger/` directory contains JSON files for tracking feature development:
|
|
114
|
+
|
|
115
|
+
- **FL-001-authentication.json**: Authentication feature tracking
|
|
116
|
+
- **feature-index.json**: Index of all features and their status
|
|
117
|
+
|
|
118
|
+
Feature ledgers help track:
|
|
119
|
+
- Feature status (planned, in-progress, completed)
|
|
120
|
+
- Related git commits
|
|
121
|
+
- Development milestones
|
|
122
|
+
- Integration with git workflow through hooks
|
|
123
|
+
|
|
124
|
+
## Hooks Directory
|
|
125
|
+
|
|
126
|
+
The `hooks/` directory contains Git hooks for automated workflow:
|
|
127
|
+
|
|
128
|
+
- **install-hooks.sh**: Script to install git hooks into the project
|
|
129
|
+
- **post-commit**: Automatically syncs feature ledger with git commits
|
|
130
|
+
|
|
131
|
+
To install hooks:
|
|
132
|
+
```bash
|
|
133
|
+
./hooks/install-hooks.sh
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The post-commit hook automatically:
|
|
137
|
+
- Parses commit messages for feature references
|
|
138
|
+
- Updates feature status in the ledger
|
|
139
|
+
- Maintains feature-commit relationships
|
|
140
|
+
|
|
141
|
+
## Utils Directory
|
|
142
|
+
|
|
143
|
+
The `utils/` directory contains utility modules for various AIWF features:
|
|
144
|
+
|
|
145
|
+
- **Compression utilities**: Various strategies for context compression
|
|
146
|
+
- **Git utilities**: Git operation helpers and integrations
|
|
147
|
+
- **Token management**: Token counting, tracking, and optimization
|
|
148
|
+
- **Text processing**: Summarization and content normalization
|
|
149
|
+
- **Persona utilities**: Context parsing and behavior validation
|
|
76
150
|
|
|
77
151
|
## Key Files and Configurations
|
|
78
152
|
|
|
79
153
|
### package.json Configuration
|
|
80
154
|
- **Type**: ES Module (`"type": "module"`)
|
|
81
|
-
- **Version**: 0.3.
|
|
155
|
+
- **Version**: 0.3.3
|
|
82
156
|
- **Main binaries**:
|
|
83
157
|
- `aiwf` - Main CLI command
|
|
84
158
|
- `aiwf-lang` - Language management CLI
|
|
@@ -92,9 +166,10 @@ The Korean version (`ko/`) includes additional features:
|
|
|
92
166
|
|
|
93
167
|
## AIWF Framework Development Rules
|
|
94
168
|
|
|
95
|
-
- **CRITICAL**: All development and source code modifications for the AIWF framework
|
|
96
|
-
-
|
|
97
|
-
-
|
|
169
|
+
- **CRITICAL**: All development and source code modifications for the AIWF framework occur directly in the root project directories.
|
|
170
|
+
- When developing new features or modifying existing ones, work directly with the files in `commands/`, `utils/`, `lib/`, etc.
|
|
171
|
+
- The `.aiwf/` directory (when created in user projects) is a generated instance for the end user. Framework development happens in the main repository.
|
|
172
|
+
- Always test changes thoroughly before committing, as modifications directly affect the framework.
|
|
98
173
|
|
|
99
174
|
## Development Guidelines
|
|
100
175
|
|
|
@@ -105,21 +180,21 @@ This project uses ES modules. Always use:
|
|
|
105
180
|
- File extensions in imports when needed
|
|
106
181
|
|
|
107
182
|
### Language Support
|
|
108
|
-
-
|
|
109
|
-
-
|
|
110
|
-
-
|
|
183
|
+
- AIWF supports both English and Korean languages
|
|
184
|
+
- Language is managed through the `aiwf-lang` CLI command
|
|
185
|
+
- Documentation is provided in both languages (e.g., README.md, README.ko.md)
|
|
186
|
+
- Commands and interfaces adapt based on the selected language
|
|
111
187
|
|
|
112
188
|
### Language Content Rules
|
|
113
|
-
**IMPORTANT**:
|
|
114
|
-
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
- `
|
|
118
|
-
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
- File paths and URLs
|
|
189
|
+
**IMPORTANT**: Language management approach:
|
|
190
|
+
- The framework uses a unified codebase with language-specific resources
|
|
191
|
+
- Language selection is handled at runtime through `config/language.json`
|
|
192
|
+
- Documentation files use language suffixes:
|
|
193
|
+
- English: `GUIDE.md`
|
|
194
|
+
- Korean: `GUIDE.ko.md`
|
|
195
|
+
- Code comments and inline documentation should be in English for maintainability
|
|
196
|
+
- User-facing messages and prompts are loaded from language-specific resources
|
|
197
|
+
- Technical terms, function names, and variable names remain in English
|
|
123
198
|
|
|
124
199
|
### Testing
|
|
125
200
|
- Write tests for all new features
|
|
@@ -151,4 +226,29 @@ The system automatically detects system language on first install, with fallback
|
|
|
151
226
|
|
|
152
227
|
## Core Architecture
|
|
153
228
|
|
|
154
|
-
|
|
229
|
+
AIWF is built on a modular architecture designed for extensibility and AI tool integration:
|
|
230
|
+
|
|
231
|
+
### Command System
|
|
232
|
+
- Commands are self-contained modules in the `commands/` directory
|
|
233
|
+
- Each command exports a default function that handles the command logic
|
|
234
|
+
- Commands can utilize utilities from `utils/` and libraries from `lib/`
|
|
235
|
+
|
|
236
|
+
### AI Persona System
|
|
237
|
+
- Personas are defined in JSON format in the `personas/` directory
|
|
238
|
+
- Each persona has associated knowledge bases and best practices
|
|
239
|
+
- The system supports dynamic persona switching and context application
|
|
240
|
+
|
|
241
|
+
### Token Management
|
|
242
|
+
- Built-in token tracking and optimization
|
|
243
|
+
- Multiple compression strategies for context management
|
|
244
|
+
- Real-time monitoring and reporting capabilities
|
|
245
|
+
|
|
246
|
+
### Template System
|
|
247
|
+
- Project templates are stored in the `templates/` directory
|
|
248
|
+
- Each template is a complete, working project setup
|
|
249
|
+
- Templates include AIWF integration out of the box
|
|
250
|
+
|
|
251
|
+
### Multi-Language Support
|
|
252
|
+
- Runtime language switching via `aiwf-lang` command
|
|
253
|
+
- Localized documentation and user interfaces
|
|
254
|
+
- Unified codebase with language-specific resources
|
package/README.ko.md
CHANGED
|
@@ -132,6 +132,31 @@ your_project/
|
|
|
132
132
|
- 📈 **경량 평가 시스템** - 최소한의 부담으로 자동 백그라운드 품질 모니터링
|
|
133
133
|
- 🚀 **Feature Ledger** - 개발 진행 상황 추적을 위한 기능 ID 시스템
|
|
134
134
|
- 🔍 **AI 도구 템플릿** - GitHub Copilot, Cursor, Windsurf, Augment 지원
|
|
135
|
+
- 🪝 **Git Hooks 통합** - git 커밋과 함께 자동 기능 추적
|
|
136
|
+
|
|
137
|
+
## 📁 프로젝트 구조
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
aiwf/
|
|
141
|
+
├── ai-tools/ # AI 도구별 구성
|
|
142
|
+
├── commands/ # AIWF 명령어 구현
|
|
143
|
+
├── config/ # 설정 파일
|
|
144
|
+
├── docs/ # 프로젝트 문서
|
|
145
|
+
├── feature-ledger/ # 기능 추적 JSON 파일
|
|
146
|
+
├── hooks/ # 자동화된 워크플로우를 위한 Git hooks
|
|
147
|
+
├── lib/ # 핵심 라이브러리 모듈
|
|
148
|
+
├── personas/ # AI 페르소나 정의
|
|
149
|
+
├── rules/ # 개발 규칙 및 가이드라인
|
|
150
|
+
├── scripts/ # 빌드 및 유틸리티 스크립트
|
|
151
|
+
├── templates/ # 프로젝트 템플릿 (api-server, npm-library, web-app)
|
|
152
|
+
├── tests/ # 테스트 스위트
|
|
153
|
+
└── utils/ # 유틸리티 모듈
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 주요 디렉토리
|
|
157
|
+
|
|
158
|
+
- **feature-ledger/**: 기능 개발 상태 및 git 커밋 관계 추적
|
|
159
|
+
- **hooks/**: 자동 기능 추적을 위한 git hooks (post-commit) 포함
|
|
135
160
|
|
|
136
161
|
## 🔧 요구사항
|
|
137
162
|
|
package/README.md
CHANGED
|
@@ -154,6 +154,31 @@ For a complete list of AIWF commands and detailed usage, see [COMMANDS_GUIDE.md]
|
|
|
154
154
|
- 📈 **Lightweight Evaluation** - Automatic background quality monitoring with minimal overhead
|
|
155
155
|
- 🚀 **Feature Ledger** - Feature ID system for development progress tracking
|
|
156
156
|
- 🔍 **AI Tool Templates** - Support for GitHub Copilot, Cursor, Windsurf, and Augment
|
|
157
|
+
- 🪝 **Git Hooks Integration** - Automated feature tracking with git commits
|
|
158
|
+
|
|
159
|
+
## 📁 Project Structure
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
aiwf/
|
|
163
|
+
├── ai-tools/ # AI tool-specific configurations
|
|
164
|
+
├── commands/ # AIWF command implementations
|
|
165
|
+
├── config/ # Configuration files
|
|
166
|
+
├── docs/ # Project documentation
|
|
167
|
+
├── feature-ledger/ # Feature tracking JSON files
|
|
168
|
+
├── hooks/ # Git hooks for automated workflows
|
|
169
|
+
├── lib/ # Core library modules
|
|
170
|
+
├── personas/ # AI persona definitions
|
|
171
|
+
├── rules/ # Development rules and guidelines
|
|
172
|
+
├── scripts/ # Build and utility scripts
|
|
173
|
+
├── templates/ # Project templates (api-server, npm-library, web-app)
|
|
174
|
+
├── tests/ # Test suites
|
|
175
|
+
└── utils/ # Utility modules
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### Key Directories
|
|
179
|
+
|
|
180
|
+
- **feature-ledger/**: Tracks feature development status and git commit relationships
|
|
181
|
+
- **hooks/**: Contains git hooks (post-commit) for automatic feature tracking
|
|
157
182
|
|
|
158
183
|
## 🔧 Requirements
|
|
159
184
|
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# AIWF 테스트 복구 계획
|
|
2
|
+
|
|
3
|
+
## 현재 상황
|
|
4
|
+
- 리팩토링 후 테스트 파일들이 손실되거나 불일치 상태
|
|
5
|
+
- GitHub API → file-downloader.js 리팩토링 완료
|
|
6
|
+
- 테스트 실행 시 다수 실패 발생
|
|
7
|
+
|
|
8
|
+
## 복구 전략
|
|
9
|
+
|
|
10
|
+
### Phase 1: Critical Tests (필수 테스트)
|
|
11
|
+
**우선순위: 최고**
|
|
12
|
+
- [ ] `basic.test.js` - 기본 프로젝트 구조
|
|
13
|
+
- [ ] `installer.test.js` - 설치 프로그램 기능
|
|
14
|
+
- [ ] `language-utils.test.js` - 언어 관리 유틸리티
|
|
15
|
+
|
|
16
|
+
### Phase 2: Core Functionality Tests (핵심 기능)
|
|
17
|
+
**우선순위: 높음**
|
|
18
|
+
- [ ] `application.test.js` - 메인 애플리케이션
|
|
19
|
+
- [ ] `commands.test.js` - 명령어 파일 검증
|
|
20
|
+
- [ ] `integration/command-integration.test.js` - 명령어 통합
|
|
21
|
+
|
|
22
|
+
### Phase 3: Advanced Features (고급 기능)
|
|
23
|
+
**우선순위: 중간**
|
|
24
|
+
- [ ] `unit/ai-persona-manager.test.js` - AI 페르소나 관리
|
|
25
|
+
- [ ] `integration/context-compression.test.js` - 컨텍스트 압축
|
|
26
|
+
- [ ] `token-tracking.test.js` - 토큰 추적
|
|
27
|
+
|
|
28
|
+
### Phase 4: Optional Tests (선택적 테스트)
|
|
29
|
+
**우선순위: 낮음**
|
|
30
|
+
- [ ] `integration/feature-ledger.test.js` - Feature Ledger
|
|
31
|
+
- [ ] `integration/git-integration.test.js` - Git 통합
|
|
32
|
+
- [ ] `s02-integration.test.js` - S02 통합
|
|
33
|
+
|
|
34
|
+
## 복구 방법
|
|
35
|
+
|
|
36
|
+
### 1. 즉시 수정 가능한 테스트
|
|
37
|
+
- 경로 불일치 수정
|
|
38
|
+
- 설정 값 업데이트
|
|
39
|
+
- Import 경로 수정
|
|
40
|
+
|
|
41
|
+
### 2. 리팩토링 필요한 테스트
|
|
42
|
+
- 삭제된 모듈 참조 제거
|
|
43
|
+
- 새로운 API에 맞게 테스트 수정
|
|
44
|
+
- Mock 객체 업데이트
|
|
45
|
+
|
|
46
|
+
### 3. 완전히 새로 작성할 테스트
|
|
47
|
+
- 새로운 file-downloader.js 테스트
|
|
48
|
+
- 업데이트된 installer 로직 테스트
|
|
49
|
+
|
|
50
|
+
## 실행 계획
|
|
51
|
+
|
|
52
|
+
1. **Phase 1 복구** (1-2시간)
|
|
53
|
+
- basic.test.js 수정
|
|
54
|
+
- installer.test.js 업데이트
|
|
55
|
+
- language-utils.test.js 검증
|
|
56
|
+
|
|
57
|
+
2. **Phase 2 복구** (2-3시간)
|
|
58
|
+
- 핵심 기능 테스트 복구
|
|
59
|
+
- 통합 테스트 수정
|
|
60
|
+
|
|
61
|
+
3. **Phase 3-4 검토** (필요시)
|
|
62
|
+
- 고급 기능 테스트 평가
|
|
63
|
+
- 불필요한 테스트 제거
|
|
64
|
+
|
|
65
|
+
## 성공 기준
|
|
66
|
+
- [ ] 모든 Critical 테스트 통과
|
|
67
|
+
- [ ] 80% 이상 테스트 커버리지
|
|
68
|
+
- [ ] CI/CD 파이프라인 정상 작동
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# AIWF 프로젝트 정리 권장사항
|
|
2
|
+
|
|
3
|
+
## ✅ 완료된 작업
|
|
4
|
+
|
|
5
|
+
1. **import 경로 수정**
|
|
6
|
+
- index.js의 잘못된 경로 수정 완료
|
|
7
|
+
- `./src/commands/ai-tool.js` → `./commands/ai-tool.js`
|
|
8
|
+
|
|
9
|
+
2. **미사용 파일 삭제** (4개 파일, 1,734줄 제거)
|
|
10
|
+
- lib/file-batch-processor.js
|
|
11
|
+
- lib/performance-benchmark.js
|
|
12
|
+
- lib/template-manager.js
|
|
13
|
+
- lib/cache-integration.js
|
|
14
|
+
|
|
15
|
+
## 📋 추가 권장사항
|
|
16
|
+
|
|
17
|
+
### 1. 코드 구조 개선
|
|
18
|
+
|
|
19
|
+
#### index.js 모듈화 (1,950줄 → 여러 모듈로 분리)
|
|
20
|
+
```
|
|
21
|
+
index.js
|
|
22
|
+
├── lib/installer.js # 설치 로직
|
|
23
|
+
├── lib/validator.js # 검증 로직
|
|
24
|
+
├── lib/backup-manager.js # 백업/복원 로직
|
|
25
|
+
└── lib/github-client.js # GitHub API 통신
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
#### 토큰 관리 시스템 통합
|
|
29
|
+
현재 8개 파일에 분산된 토큰 기능을 2개로 통합:
|
|
30
|
+
- `lib/token-manager.js` - 핵심 토큰 관리
|
|
31
|
+
- `commands/token-tracking.js` - CLI 명령어
|
|
32
|
+
|
|
33
|
+
### 2. 파일명 일관성
|
|
34
|
+
|
|
35
|
+
스네이크 케이스를 케밥 케이스로 통일:
|
|
36
|
+
```bash
|
|
37
|
+
# 변경 필요
|
|
38
|
+
sync-feature-commits.js → sync-feature-commits.js ✓ (완료)
|
|
39
|
+
feature-commit-report.js → feature-commit-report.js ✓ (완료)
|
|
40
|
+
scan-git-history.js → scan-git-history.js ✓ (완료)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. 중복 기능 통합
|
|
44
|
+
|
|
45
|
+
#### 압축 시스템 (4개 → 2개)
|
|
46
|
+
- 유지: `utils/context-compressor.js`, `commands/compress-context.js`
|
|
47
|
+
- 통합: `compression-strategies.js`, `persona-aware-compressor.js`
|
|
48
|
+
|
|
49
|
+
### 4. 문서 정리
|
|
50
|
+
|
|
51
|
+
중복되거나 오래된 문서 통합:
|
|
52
|
+
- PRD.md와 PRD.ko.md의 정보 동기화
|
|
53
|
+
- 여러 개의 가이드 문서를 하나로 통합
|
|
54
|
+
- 사용되지 않는 문서에서만 참조되는 기능 제거
|
|
55
|
+
|
|
56
|
+
### 5. 테스트 개선
|
|
57
|
+
|
|
58
|
+
- 큰 테스트 파일 분리 (compression-test-suite.js: 1,251줄)
|
|
59
|
+
- 주석 처리된 테스트 코드 정리
|
|
60
|
+
- 실제 사용되는 유틸리티에 대한 테스트 추가
|
|
61
|
+
|
|
62
|
+
### 6. 성능 최적화
|
|
63
|
+
|
|
64
|
+
- 복잡한 메트릭 수집 간소화 (metrics-collector.js: 884줄)
|
|
65
|
+
- 불필요한 추상화 레벨 제거
|
|
66
|
+
- 캐시 시스템 단순화
|
|
67
|
+
|
|
68
|
+
## 🎯 예상 효과
|
|
69
|
+
|
|
70
|
+
- **코드 감소**: 약 20-30% 코드량 감소
|
|
71
|
+
- **유지보수성**: 파일 구조 명확화로 이해도 향상
|
|
72
|
+
- **성능**: 불필요한 추상화 제거로 성능 개선
|
|
73
|
+
- **일관성**: 명명 규칙 통일로 개발 경험 개선
|
|
74
|
+
|
|
75
|
+
## ⚠️ 주의사항
|
|
76
|
+
|
|
77
|
+
1. **Git 통합 파일들은 유지**: 실제로 활발히 사용 중
|
|
78
|
+
2. **페르소나 시스템 유지**: Claude Code 통합에 필수
|
|
79
|
+
3. **변경 시 테스트 필수**: 기능 손상 방지
|
|
80
|
+
|
|
81
|
+
## 🔄 단계별 진행
|
|
82
|
+
|
|
83
|
+
1. **Phase 1** (즉시): ✅ 미사용 파일 제거 (완료)
|
|
84
|
+
2. **Phase 2** (단기): 파일명 통일, 중복 통합
|
|
85
|
+
3. **Phase 3** (중기): index.js 모듈화, 테스트 개선
|
|
86
|
+
4. **Phase 4** (장기): 전체 구조 최적화
|