kodu 2.2.0 → 3.0.1

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.
Files changed (233) hide show
  1. package/README.md +24 -3
  2. package/bin/kodu.js +23 -0
  3. package/package.json +11 -67
  4. package/scripts/postinstall.js +69 -0
  5. package/AGENTS.md +0 -214
  6. package/__tests__/core/fs/fs.service.test.ts +0 -72
  7. package/__tests__/core/registry/registry.service.test.ts +0 -82
  8. package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
  9. package/__tests__/shared/git/git.service.test.ts +0 -84
  10. package/__tests__/shared/runbook/runbook.service.test.ts +0 -104
  11. package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
  12. package/biome.json +0 -50
  13. package/dist/package.json +0 -96
  14. package/dist/src/app.module.d.ts +0 -2
  15. package/dist/src/app.module.js +0 -42
  16. package/dist/src/app.module.js.map +0 -1
  17. package/dist/src/commands/clean/clean.command.d.ts +0 -37
  18. package/dist/src/commands/clean/clean.command.js +0 -240
  19. package/dist/src/commands/clean/clean.command.js.map +0 -1
  20. package/dist/src/commands/clean/clean.module.d.ts +0 -2
  21. package/dist/src/commands/clean/clean.module.js +0 -26
  22. package/dist/src/commands/clean/clean.module.js.map +0 -1
  23. package/dist/src/commands/init/init.command.d.ts +0 -10
  24. package/dist/src/commands/init/init.command.js +0 -96
  25. package/dist/src/commands/init/init.command.js.map +0 -1
  26. package/dist/src/commands/init/init.module.d.ts +0 -2
  27. package/dist/src/commands/init/init.module.js +0 -22
  28. package/dist/src/commands/init/init.module.js.map +0 -1
  29. package/dist/src/commands/ops/ops-add.command.d.ts +0 -18
  30. package/dist/src/commands/ops/ops-add.command.js +0 -102
  31. package/dist/src/commands/ops/ops-add.command.js.map +0 -1
  32. package/dist/src/commands/ops/ops-init.command.d.ts +0 -22
  33. package/dist/src/commands/ops/ops-init.command.js +0 -130
  34. package/dist/src/commands/ops/ops-init.command.js.map +0 -1
  35. package/dist/src/commands/ops/ops-list.command.d.ts +0 -12
  36. package/dist/src/commands/ops/ops-list.command.js +0 -73
  37. package/dist/src/commands/ops/ops-list.command.js.map +0 -1
  38. package/dist/src/commands/ops/ops-path.command.d.ts +0 -9
  39. package/dist/src/commands/ops/ops-path.command.js +0 -52
  40. package/dist/src/commands/ops/ops-path.command.js.map +0 -1
  41. package/dist/src/commands/ops/ops-runbook.command.d.ts +0 -12
  42. package/dist/src/commands/ops/ops-runbook.command.js +0 -81
  43. package/dist/src/commands/ops/ops-runbook.command.js.map +0 -1
  44. package/dist/src/commands/ops/ops-status.command.d.ts +0 -11
  45. package/dist/src/commands/ops/ops-status.command.js +0 -62
  46. package/dist/src/commands/ops/ops-status.command.js.map +0 -1
  47. package/dist/src/commands/ops/ops-use.command.d.ts +0 -12
  48. package/dist/src/commands/ops/ops-use.command.js +0 -76
  49. package/dist/src/commands/ops/ops-use.command.js.map +0 -1
  50. package/dist/src/commands/ops/ops.command.d.ts +0 -7
  51. package/dist/src/commands/ops/ops.command.js +0 -56
  52. package/dist/src/commands/ops/ops.command.js.map +0 -1
  53. package/dist/src/commands/ops/ops.helpers.d.ts +0 -2
  54. package/dist/src/commands/ops/ops.helpers.js +0 -11
  55. package/dist/src/commands/ops/ops.helpers.js.map +0 -1
  56. package/dist/src/commands/ops/ops.module.d.ts +0 -2
  57. package/dist/src/commands/ops/ops.module.js +0 -36
  58. package/dist/src/commands/ops/ops.module.js.map +0 -1
  59. package/dist/src/commands/pack/pack.command.d.ts +0 -51
  60. package/dist/src/commands/pack/pack.command.js +0 -355
  61. package/dist/src/commands/pack/pack.command.js.map +0 -1
  62. package/dist/src/commands/pack/pack.module.d.ts +0 -2
  63. package/dist/src/commands/pack/pack.module.js +0 -27
  64. package/dist/src/commands/pack/pack.module.js.map +0 -1
  65. package/dist/src/core/config/config.module.d.ts +0 -2
  66. package/dist/src/core/config/config.module.js +0 -23
  67. package/dist/src/core/config/config.module.js.map +0 -1
  68. package/dist/src/core/config/config.schema.d.ts +0 -19
  69. package/dist/src/core/config/config.schema.js +0 -56
  70. package/dist/src/core/config/config.schema.js.map +0 -1
  71. package/dist/src/core/config/config.service.d.ts +0 -7
  72. package/dist/src/core/config/config.service.js +0 -49
  73. package/dist/src/core/config/config.service.js.map +0 -1
  74. package/dist/src/core/config/prompt.service.d.ts +0 -10
  75. package/dist/src/core/config/prompt.service.js +0 -80
  76. package/dist/src/core/config/prompt.service.js.map +0 -1
  77. package/dist/src/core/file-system/fs.module.d.ts +0 -2
  78. package/dist/src/core/file-system/fs.module.js +0 -21
  79. package/dist/src/core/file-system/fs.module.js.map +0 -1
  80. package/dist/src/core/file-system/fs.service.d.ts +0 -27
  81. package/dist/src/core/file-system/fs.service.js +0 -203
  82. package/dist/src/core/file-system/fs.service.js.map +0 -1
  83. package/dist/src/core/registry/registry.module.d.ts +0 -2
  84. package/dist/src/core/registry/registry.module.js +0 -22
  85. package/dist/src/core/registry/registry.module.js.map +0 -1
  86. package/dist/src/core/registry/registry.schema.d.ts +0 -24
  87. package/dist/src/core/registry/registry.schema.js +0 -21
  88. package/dist/src/core/registry/registry.schema.js.map +0 -1
  89. package/dist/src/core/registry/registry.service.d.ts +0 -16
  90. package/dist/src/core/registry/registry.service.js +0 -91
  91. package/dist/src/core/registry/registry.service.js.map +0 -1
  92. package/dist/src/core/ui/ui.module.d.ts +0 -2
  93. package/dist/src/core/ui/ui.module.js +0 -22
  94. package/dist/src/core/ui/ui.module.js.map +0 -1
  95. package/dist/src/core/ui/ui.service.d.ts +0 -22
  96. package/dist/src/core/ui/ui.service.js +0 -43
  97. package/dist/src/core/ui/ui.service.js.map +0 -1
  98. package/dist/src/main.d.ts +0 -2
  99. package/dist/src/main.js +0 -16
  100. package/dist/src/main.js.map +0 -1
  101. package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
  102. package/dist/src/shared/cleaner/cleaner.service.js +0 -223
  103. package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
  104. package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
  105. package/dist/src/shared/cleaner/cleaner.types.js +0 -3
  106. package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
  107. package/dist/src/shared/constants.d.ts +0 -4
  108. package/dist/src/shared/constants.js +0 -113
  109. package/dist/src/shared/constants.js.map +0 -1
  110. package/dist/src/shared/deps/deps.module.d.ts +0 -2
  111. package/dist/src/shared/deps/deps.module.js +0 -21
  112. package/dist/src/shared/deps/deps.module.js.map +0 -1
  113. package/dist/src/shared/deps/deps.service.d.ts +0 -15
  114. package/dist/src/shared/deps/deps.service.js +0 -114
  115. package/dist/src/shared/deps/deps.service.js.map +0 -1
  116. package/dist/src/shared/git/git.module.d.ts +0 -2
  117. package/dist/src/shared/git/git.module.js +0 -21
  118. package/dist/src/shared/git/git.module.js.map +0 -1
  119. package/dist/src/shared/git/git.service.d.ts +0 -5
  120. package/dist/src/shared/git/git.service.js +0 -56
  121. package/dist/src/shared/git/git.service.js.map +0 -1
  122. package/dist/src/shared/runbook/runbook.module.d.ts +0 -2
  123. package/dist/src/shared/runbook/runbook.module.js +0 -22
  124. package/dist/src/shared/runbook/runbook.module.js.map +0 -1
  125. package/dist/src/shared/runbook/runbook.service.d.ts +0 -20
  126. package/dist/src/shared/runbook/runbook.service.js +0 -118
  127. package/dist/src/shared/runbook/runbook.service.js.map +0 -1
  128. package/dist/src/shared/runbook/runbook.templates.d.ts +0 -6
  129. package/dist/src/shared/runbook/runbook.templates.js +0 -49
  130. package/dist/src/shared/runbook/runbook.templates.js.map +0 -1
  131. package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
  132. package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
  133. package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
  134. package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
  135. package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
  136. package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
  137. package/dist/tsconfig.build.tsbuildinfo +0 -1
  138. package/docs/todo.md +0 -7
  139. package/knip.json +0 -10
  140. package/kodu.json +0 -63
  141. package/kodu.schema.json +0 -100
  142. package/lefthook.yml +0 -11
  143. package/nest-cli.json +0 -8
  144. package/registry.schema.json +0 -39
  145. package/scripts/generate-json-schema.ts +0 -27
  146. package/skills/ac/SKILL.md +0 -239
  147. package/skills/al/SKILL.md +0 -98
  148. package/skills/audit/SKILL.md +0 -205
  149. package/skills/audit/audit-baseline-template.yml +0 -188
  150. package/skills/audit/runtime-detect.md +0 -64
  151. package/skills/audit/stacks/_generic.md +0 -41
  152. package/skills/audit/stacks/_registry.md +0 -47
  153. package/skills/audit/stacks/go.md +0 -66
  154. package/skills/audit/stacks/java.md +0 -44
  155. package/skills/audit/stacks/node.md +0 -57
  156. package/skills/audit/stacks/python.md +0 -45
  157. package/skills/audit/stacks/rust.md +0 -44
  158. package/skills/audit-api-contracts/SKILL.md +0 -201
  159. package/skills/audit-architecture/SKILL.md +0 -200
  160. package/skills/audit-bugs/SKILL.md +0 -226
  161. package/skills/audit-concurrency/SKILL.md +0 -197
  162. package/skills/audit-deployment/SKILL.md +0 -218
  163. package/skills/audit-docs/SKILL.md +0 -209
  164. package/skills/audit-errors/SKILL.md +0 -216
  165. package/skills/audit-logging/SKILL.md +0 -197
  166. package/skills/audit-matrix/SKILL.md +0 -245
  167. package/skills/audit-meta/SKILL.md +0 -120
  168. package/skills/audit-naming/SKILL.md +0 -200
  169. package/skills/audit-owasp/SKILL.md +0 -223
  170. package/skills/audit-performance/SKILL.md +0 -199
  171. package/skills/audit-reinvention/SKILL.md +0 -214
  172. package/skills/audit-secrets/SKILL.md +0 -198
  173. package/skills/audit-tests/SKILL.md +0 -210
  174. package/skills/audit-validation/SKILL.md +0 -206
  175. package/skills/audit-verify/SKILL.md +0 -139
  176. package/skills/audit-yagni/SKILL.md +0 -188
  177. package/skills/doc-gen/SKILL.md +0 -490
  178. package/skills/doc-gen/scripts/doc_gen.py +0 -911
  179. package/skills/generate-project-docs/SKILL.md +0 -380
  180. package/skills/implement-project/SKILL.md +0 -409
  181. package/skills/liteend-init/SKILL.md +0 -84
  182. package/skills/litefront-init/SKILL.md +0 -96
  183. package/skills/litefront-prototype/SKILL.md +0 -484
  184. package/skills/ops/SKILL.md +0 -94
  185. package/skills/post-call-task-builder/SKILL.md +0 -419
  186. package/skills/project-setup-standardizer/SKILL.md +0 -285
  187. package/skills/skills-best-practices/SKILL.md +0 -415
  188. package/skills/start/SKILL.md +0 -319
  189. package/skills/tech-blueprint/SKILL.md +0 -890
  190. package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
  191. package/src/app.module.ts +0 -29
  192. package/src/commands/clean/clean.command.ts +0 -235
  193. package/src/commands/clean/clean.module.ts +0 -13
  194. package/src/commands/init/init.command.ts +0 -92
  195. package/src/commands/init/init.module.ts +0 -9
  196. package/src/commands/ops/ops-add.command.ts +0 -83
  197. package/src/commands/ops/ops-init.command.ts +0 -125
  198. package/src/commands/ops/ops-list.command.ts +0 -57
  199. package/src/commands/ops/ops-path.command.ts +0 -38
  200. package/src/commands/ops/ops-runbook.command.ts +0 -74
  201. package/src/commands/ops/ops-status.command.ts +0 -47
  202. package/src/commands/ops/ops-use.command.ts +0 -76
  203. package/src/commands/ops/ops.command.ts +0 -42
  204. package/src/commands/ops/ops.helpers.ts +0 -20
  205. package/src/commands/ops/ops.module.ts +0 -23
  206. package/src/commands/pack/pack.command.ts +0 -347
  207. package/src/commands/pack/pack.module.ts +0 -14
  208. package/src/core/config/config.module.ts +0 -10
  209. package/src/core/config/config.schema.ts +0 -58
  210. package/src/core/config/config.service.ts +0 -43
  211. package/src/core/config/prompt.service.ts +0 -80
  212. package/src/core/file-system/fs.module.ts +0 -8
  213. package/src/core/file-system/fs.service.ts +0 -248
  214. package/src/core/registry/registry.module.ts +0 -9
  215. package/src/core/registry/registry.schema.ts +0 -46
  216. package/src/core/registry/registry.service.ts +0 -128
  217. package/src/core/ui/ui.module.ts +0 -9
  218. package/src/core/ui/ui.service.ts +0 -39
  219. package/src/main.ts +0 -12
  220. package/src/shared/cleaner/cleaner.service.ts +0 -289
  221. package/src/shared/cleaner/cleaner.types.ts +0 -23
  222. package/src/shared/constants.ts +0 -118
  223. package/src/shared/deps/deps.module.ts +0 -8
  224. package/src/shared/deps/deps.service.ts +0 -175
  225. package/src/shared/git/git.module.ts +0 -8
  226. package/src/shared/git/git.service.ts +0 -47
  227. package/src/shared/runbook/runbook.module.ts +0 -9
  228. package/src/shared/runbook/runbook.service.ts +0 -164
  229. package/src/shared/runbook/runbook.templates.ts +0 -66
  230. package/src/shared/tokenizer/tokenizer.module.ts +0 -8
  231. package/src/shared/tokenizer/tokenizer.service.ts +0 -30
  232. package/tsconfig.build.json +0 -7
  233. package/tsconfig.json +0 -28
package/kodu.schema.json DELETED
@@ -1,100 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "$schema": {
6
- "type": "string"
7
- },
8
- "cleaner": {
9
- "default": {
10
- "whitelist": ["//!"],
11
- "keepJSDoc": true,
12
- "useGitignore": true,
13
- "ignore": []
14
- },
15
- "type": "object",
16
- "properties": {
17
- "whitelist": {
18
- "default": ["//!"],
19
- "type": "array",
20
- "items": {
21
- "type": "string"
22
- }
23
- },
24
- "keepJSDoc": {
25
- "default": true,
26
- "type": "boolean"
27
- },
28
- "useGitignore": {
29
- "default": true,
30
- "type": "boolean"
31
- },
32
- "ignore": {
33
- "default": [],
34
- "type": "array",
35
- "items": {
36
- "type": "string"
37
- }
38
- }
39
- },
40
- "required": ["whitelist", "keepJSDoc", "useGitignore", "ignore"],
41
- "additionalProperties": false
42
- },
43
- "packer": {
44
- "default": {
45
- "ignore": [
46
- "package-lock.json",
47
- "yarn.lock",
48
- "pnpm-lock.yaml",
49
- ".git",
50
- ".kodu",
51
- "node_modules",
52
- "dist",
53
- "coverage"
54
- ],
55
- "useGitignore": true,
56
- "contentBasedBinaryDetection": false
57
- },
58
- "type": "object",
59
- "properties": {
60
- "ignore": {
61
- "default": [
62
- "package-lock.json",
63
- "yarn.lock",
64
- "pnpm-lock.yaml",
65
- ".git",
66
- ".kodu",
67
- "node_modules",
68
- "dist",
69
- "coverage"
70
- ],
71
- "type": "array",
72
- "items": {
73
- "type": "string"
74
- }
75
- },
76
- "useGitignore": {
77
- "default": true,
78
- "type": "boolean"
79
- },
80
- "contentBasedBinaryDetection": {
81
- "default": false,
82
- "type": "boolean"
83
- }
84
- },
85
- "required": ["ignore", "useGitignore", "contentBasedBinaryDetection"],
86
- "additionalProperties": false
87
- },
88
- "prompts": {
89
- "type": "object",
90
- "properties": {
91
- "pack": {
92
- "type": "string"
93
- }
94
- },
95
- "additionalProperties": false
96
- }
97
- },
98
- "required": ["cleaner", "packer"],
99
- "additionalProperties": false
100
- }
package/lefthook.yml DELETED
@@ -1,11 +0,0 @@
1
- pre-commit:
2
- parallel: false
3
- commands:
4
- check:
5
- run: npm run check
6
-
7
- pre-push:
8
- parallel: false
9
- commands:
10
- test:
11
- run: npm run test
package/nest-cli.json DELETED
@@ -1,8 +0,0 @@
1
- {
2
- "$schema": "https://json.schemastore.org/nest-cli",
3
- "collection": "@nestjs/schematics",
4
- "sourceRoot": "src",
5
- "compilerOptions": {
6
- "deleteOutDir": true
7
- }
8
- }
@@ -1,39 +0,0 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "properties": {
5
- "$schema": {
6
- "type": "string"
7
- },
8
- "projects": {
9
- "default": {},
10
- "type": "object",
11
- "propertyNames": {
12
- "type": "string"
13
- },
14
- "additionalProperties": {
15
- "type": "object",
16
- "properties": {
17
- "path": {
18
- "type": "string",
19
- "minLength": 1
20
- },
21
- "repo": {
22
- "type": "string"
23
- },
24
- "stands": {
25
- "default": ["local", "dev", "stage", "prod"],
26
- "type": "array",
27
- "items": {
28
- "type": "string"
29
- }
30
- }
31
- },
32
- "required": ["path", "stands"],
33
- "additionalProperties": false
34
- }
35
- }
36
- },
37
- "required": ["projects"],
38
- "additionalProperties": false
39
- }
@@ -1,27 +0,0 @@
1
- import { writeFile } from 'node:fs/promises';
2
- import { execa } from 'execa';
3
- import { configSchema } from '../src/core/config/config.schema';
4
- import { registrySchema } from '../src/core/registry/registry.schema';
5
-
6
- async function main(): Promise<void> {
7
- await writeFile(
8
- 'kodu.schema.json',
9
- JSON.stringify(configSchema.toJSONSchema(), null, 2),
10
- 'utf8',
11
- );
12
- await execa('biome', ['format', '--write', 'kodu.schema.json']);
13
- console.log('✅ JSON schema generated: kodu.schema.json');
14
-
15
- await writeFile(
16
- 'registry.schema.json',
17
- JSON.stringify(registrySchema.toJSONSchema(), null, 2),
18
- 'utf8',
19
- );
20
- await execa('biome', ['format', '--write', 'registry.schema.json']);
21
- console.log('✅ JSON schema generated: registry.schema.json');
22
- }
23
-
24
- main().catch((error: unknown) => {
25
- console.error(error);
26
- process.exitCode = 1;
27
- });
@@ -1,239 +0,0 @@
1
- ---
2
- name: ac
3
- description: "Обновляет status.md, фиксирует решения и выполняет грамотный git commit."
4
- compatibility: opencode
5
- metadata:
6
- level: multi
7
- output: .agent-log/ + git commit
8
- ---
9
-
10
- # Что делает этот скилл
11
-
12
- Перед коммитом делает три вещи:
13
- 1. **Проверяет** — нет ли секретов в коде
14
- 2. **Обновляет** — `status.md` (отмечает что сделано) и пишет decision если нужно
15
- 3. **Коммитит** — по Conventional Commits, с WHY в теле
16
-
17
- Запускается **автоматически** при словах "коммитим / готово / push / закончили / сохрани".
18
- Пользователь может вызвать вручную: `/ac`.
19
-
20
- ---
21
-
22
- # Шаги
23
-
24
- ## Шаг 1 — Узнать что изменилось
25
-
26
- ```bash
27
- git diff --cached --name-only
28
- ```
29
-
30
- Если список пустой:
31
- ```bash
32
- git diff HEAD --name-only
33
- ```
34
-
35
- Если и там пусто → написать "Нечего коммитить" и **остановиться**.
36
-
37
- ---
38
-
39
- ## Шаг 2 — Проверить на секреты
40
-
41
- ```bash
42
- git diff --cached
43
- ```
44
-
45
- Проверить весь diff по паттернам:
46
-
47
- - AWS access key
48
- - GitHub PAT
49
- - OpenAI / Anthropic key / ...
50
- - Приватный ключ
51
- - Пароль в коде (не placeholder)
52
- - Секрет в коде (не placeholder)
53
-
54
- **Нашёл → СТОП.** Показать строку с проблемой. Коммитить нельзя.
55
-
56
- ---
57
-
58
- ## Шаг 3 — Записать архитектурное решение (если было)
59
-
60
- **Сначала ответить:** было ли в сессии архитектурное решение? (обсуждались варианты, выбирался подход)
61
-
62
- **Нет → пропустить этот шаг.**
63
-
64
- **Да:**
65
-
66
- 1. Найти следующий ID: `glob: .agent-log/decisions/**/*.md` → max номер `DEC-NNNN` → +1. Если файлов нет → `DEC-0001`.
67
-
68
- 2. Slug из заголовка:
69
- ```bash
70
- python3 -c "import unicodedata,re,sys; s=unicodedata.normalize('NFKD',sys.argv[1]).encode('ascii','ignore').decode(); print(re.sub(r'[^a-z0-9]+','-',s.lower()).strip('-'))" "Заголовок решения"
71
- ```
72
-
73
- 3. Создать `.agent-log/decisions/YYYY/MM/DD/DEC-NNNN-slug.md`:
74
-
75
- ```
76
- ---
77
- id: DEC-NNNN
78
- type: decision
79
- title: Заголовок решения
80
- summary: Одна строка — суть выбора
81
- status: active
82
- created_at: YYYY-MM-DD
83
- updated_at: YYYY-MM-DD
84
- tags: [тег1, тег2]
85
- confidence: medium
86
- schema_version: 1
87
- related_files: [только исходный код, без .agent-log/]
88
- origin: generated
89
- verification_state: unverified
90
- ---
91
-
92
- ## Контекст
93
-
94
- Почему возник этот вопрос. Что за проблема. Понятно для нового разработчика.
95
-
96
- ## Решение
97
-
98
- Что выбрали и почему именно это.
99
-
100
- ## Альтернативы
101
-
102
- Что рассматривали и почему не выбрали. Даже плохие варианты — чтобы не предлагали снова.
103
- ```
104
-
105
- Запомнить ID (`DEC-NNNN`) — нужен в шаге 6.
106
-
107
- ---
108
-
109
- ## Шаг 4 — Обновить status.md
110
-
111
- Прочитать `.agent-log/status.md`.
112
-
113
- Определить: какая задача из "Текущего фокуса" решена этим коммитом?
114
-
115
- - `- [ ] задача` → `- [x] задача` для выполненной
116
- - Если в "Ближайшем бэклоге" есть задачи — перенести первую в "Текущий фокус"
117
- (убрать из бэклога, добавить как `- [ ]` в фокус)
118
- - Обновить `updated_at` во frontmatter: текущая дата и время (`YYYY-MM-DD HH:MM`)
119
-
120
- Если `status.md` не существует → создать пустой шаблон:
121
-
122
- ```
123
- ---
124
- type: status
125
- updated_at: YYYY-MM-DD HH:MM
126
- current_goal: ""
127
- ---
128
-
129
- # Текущий фокус
130
- - [ ] Задача не определена
131
-
132
- # Ближайший бэклог (Next Steps)
133
-
134
- # Известные проблемы / Технический долг
135
- ```
136
-
137
- ---
138
-
139
- ## Шаг 5 — Добавить файлы в staged
140
-
141
- ```bash
142
- git add .agent-log/status.md
143
- ```
144
-
145
- Если в шаге 3 создано решение:
146
- ```bash
147
- git add .agent-log/decisions/
148
- ```
149
-
150
- ---
151
-
152
- ## Шаг 6 — Сформировать commit message
153
-
154
- ### Формат (Conventional Commits)
155
-
156
- ```
157
- тип(область): короткое описание
158
-
159
- Почему было сделано это изменение.
160
- Какая проблема решалась и почему именно так.
161
-
162
- Related: DEC-NNNN
163
- ```
164
-
165
- ### Как выбрать тип
166
-
167
- | Тип | Когда |
168
- |---|---|
169
- | `feat` | Новая функциональность |
170
- | `fix` | Исправление бага |
171
- | `refactor` | Переработка без изменения поведения |
172
- | `docs` | Только документация |
173
- | `chore` | Конфиги, зависимости |
174
- | `test` | Тесты |
175
- | `perf` | Производительность |
176
- | `style` | Форматирование |
177
- | `build` | Сборка, CI/CD |
178
-
179
- ### Правила первой строки
180
-
181
- - Императив: `add`, `fix`, `remove` (не `added`, не `adding`)
182
- - Строчная буква после двоеточия, без точки, ≤72 символа
183
- - **Всегда на английском**
184
-
185
- ### Тело — обязательно
186
-
187
- WHY, не WHAT. Почему именно так. Отделить пустой строкой, перенос на 72 символах.
188
-
189
- ### Footer
190
-
191
- - `Related: DEC-NNNN` — если в шаге 3 создано решение
192
- - `BREAKING CHANGE: описание` — если ломающее изменение
193
-
194
- ### Пример
195
-
196
- ```
197
- feat(auth): add session invalidation via Redis
198
-
199
- JWT tokens could not be revoked server-side without maintaining
200
- a blacklist. Redis-based sessions solve this with O(1) lookup
201
- and TTL-based cleanup.
202
-
203
- Related: DEC-0001
204
- ```
205
-
206
- ---
207
-
208
- ## Шаг 7 — Выполнить коммит
209
-
210
- ```bash
211
- git commit -m "тип(область): описание
212
-
213
- WHY в теле.
214
-
215
- Related: DEC-NNNN"
216
- ```
217
-
218
- ---
219
-
220
- ## Шаг 8 — Вывод пользователю
221
-
222
- ```
223
- ✅ Изменения зафиксированы
224
- Коммит: <sha7> — <описание>
225
- status.md обновлён.
226
- Решений записано: [N / нет]
227
- ```
228
-
229
- ---
230
-
231
- # Правила
232
-
233
- - **Секреты** → СТОП, показать строку, не коммитить
234
- - **Decision** — только при реальном архитектурном выборе, не каждый коммит
235
- - **Commit message** — английский, Conventional Commits
236
- - **WHY неясен** — инферировать из контекста сессии, не спрашивать повторно
237
- - **status.md** — обновлять всегда, минимум `updated_at`
238
- - **Язык в markdown-файлах** — просто и понятно, короткие предложения, без жаргона без объяснений
239
- - **Порядок**: проверить → записать файлы → git add → git commit
@@ -1,98 +0,0 @@
1
- ---
2
- name: al
3
- description: "Загружает рабочий контекст из .agent-log/ и git log в начале сессии."
4
- compatibility: opencode
5
- metadata:
6
- level: single
7
- output: context summary
8
- ---
9
-
10
- # Что делает этот скилл
11
-
12
- Даёт агенту актуальный рабочий контекст перед началом работы:
13
- - что делаем прямо сейчас (из `status.md`)
14
- - что уже было сделано (из `git log`)
15
- - какие архитектурные решения приняты (из `decisions/`)
16
-
17
- Запускается **автоматически** в начале каждой сессии. Пользователь может вызвать вручную: `/al`.
18
-
19
- ---
20
-
21
- # Шаги
22
-
23
- **Шаг 1 — Проверить базу знаний**
24
-
25
- ```bash
26
- ls .agent-log/
27
- ```
28
-
29
- > ⚠️ Никогда не использовать инструмент `read` для директории — вернёт "File not found". Всегда через `bash`.
30
-
31
- - Директория есть → перейти к шагу 2
32
- - Директории нет → сообщить: _"AKMS не инициализирован. Запустить `akms init`?"_ — остановиться
33
-
34
- ---
35
-
36
- **Шаг 2 — Прочитать текущий фокус**
37
-
38
- Прочитать `.agent-log/status.md` целиком — файл всегда короткий.
39
-
40
- Запомнить:
41
- - `current_goal` из frontmatter — глобальная цель проекта
42
- - первый незакрытый пункт `- [ ]` из раздела "Текущий фокус"
43
-
44
- Если `status.md` не существует → пропустить, продолжить без фокуса.
45
-
46
- ---
47
-
48
- **Шаг 3 — Загрузить активные решения**
49
-
50
- ```bash
51
- glob: .agent-log/decisions/**/*.md
52
- ```
53
-
54
- Для каждого читать **только первые 15 строк** — frontmatter достаточно.
55
-
56
- Оставить только: `status: active` или `status: needs_review`. Максимум **7 записей**.
57
-
58
- Если решений нет → пропустить.
59
-
60
- ---
61
-
62
- **Шаг 4 — Прочитать историю из Git**
63
-
64
- ```bash
65
- git log -n 5 --pretty=format:"* %h — %s (%ar)"
66
- ```
67
-
68
- Последние 5 коммитов в одну строку каждый. Быстро, не читает файловую систему.
69
-
70
- Если git не инициализирован или репозиторий пустой → пропустить.
71
-
72
- ---
73
-
74
- **Шаг 5 — Вывести контекст пользователю**
75
-
76
- ```
77
- 📚 AKMS контекст загружен
78
- Текущая цель: [current_goal из status.md / "не задана"]
79
- Активная задача: [первый - [ ] пункт / "нет открытых задач"]
80
- Последние коммиты:
81
- * a1b2c3d — feat(auth): add redis support (2 hours ago)
82
- * ...
83
- Активные решения: [DEC-0001: заголовок, ...] / нет
84
-
85
- Работаем.
86
- ```
87
-
88
- После вывода — сразу переходить к задаче пользователя.
89
-
90
- ---
91
-
92
- # Правила
93
-
94
- - **status.md читать целиком** — он специально короткий, это не расточительство
95
- - **decisions** — только первые 15 строк (frontmatter), тело не нужно
96
- - **git log вместо файлов коммитов** — быстрее и всегда актуально
97
- - **Директорию проверять через `bash ls`** — не через `read`
98
- - **Не задавать вопросов** — только читать, ничего не менять