kodu 2.2.0 → 3.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +24 -3
  2. package/bin/kodu.js +40 -0
  3. package/package.json +12 -67
  4. package/scripts/install.js +68 -0
  5. package/scripts/postinstall.js +22 -0
  6. package/AGENTS.md +0 -214
  7. package/__tests__/core/fs/fs.service.test.ts +0 -72
  8. package/__tests__/core/registry/registry.service.test.ts +0 -82
  9. package/__tests__/shared/cleaner/cleaner.service.test.ts +0 -102
  10. package/__tests__/shared/git/git.service.test.ts +0 -84
  11. package/__tests__/shared/runbook/runbook.service.test.ts +0 -104
  12. package/__tests__/shared/tokenizer/tokenizer.service.test.ts +0 -45
  13. package/biome.json +0 -50
  14. package/dist/package.json +0 -96
  15. package/dist/src/app.module.d.ts +0 -2
  16. package/dist/src/app.module.js +0 -42
  17. package/dist/src/app.module.js.map +0 -1
  18. package/dist/src/commands/clean/clean.command.d.ts +0 -37
  19. package/dist/src/commands/clean/clean.command.js +0 -240
  20. package/dist/src/commands/clean/clean.command.js.map +0 -1
  21. package/dist/src/commands/clean/clean.module.d.ts +0 -2
  22. package/dist/src/commands/clean/clean.module.js +0 -26
  23. package/dist/src/commands/clean/clean.module.js.map +0 -1
  24. package/dist/src/commands/init/init.command.d.ts +0 -10
  25. package/dist/src/commands/init/init.command.js +0 -96
  26. package/dist/src/commands/init/init.command.js.map +0 -1
  27. package/dist/src/commands/init/init.module.d.ts +0 -2
  28. package/dist/src/commands/init/init.module.js +0 -22
  29. package/dist/src/commands/init/init.module.js.map +0 -1
  30. package/dist/src/commands/ops/ops-add.command.d.ts +0 -18
  31. package/dist/src/commands/ops/ops-add.command.js +0 -102
  32. package/dist/src/commands/ops/ops-add.command.js.map +0 -1
  33. package/dist/src/commands/ops/ops-init.command.d.ts +0 -22
  34. package/dist/src/commands/ops/ops-init.command.js +0 -130
  35. package/dist/src/commands/ops/ops-init.command.js.map +0 -1
  36. package/dist/src/commands/ops/ops-list.command.d.ts +0 -12
  37. package/dist/src/commands/ops/ops-list.command.js +0 -73
  38. package/dist/src/commands/ops/ops-list.command.js.map +0 -1
  39. package/dist/src/commands/ops/ops-path.command.d.ts +0 -9
  40. package/dist/src/commands/ops/ops-path.command.js +0 -52
  41. package/dist/src/commands/ops/ops-path.command.js.map +0 -1
  42. package/dist/src/commands/ops/ops-runbook.command.d.ts +0 -12
  43. package/dist/src/commands/ops/ops-runbook.command.js +0 -81
  44. package/dist/src/commands/ops/ops-runbook.command.js.map +0 -1
  45. package/dist/src/commands/ops/ops-status.command.d.ts +0 -11
  46. package/dist/src/commands/ops/ops-status.command.js +0 -62
  47. package/dist/src/commands/ops/ops-status.command.js.map +0 -1
  48. package/dist/src/commands/ops/ops-use.command.d.ts +0 -12
  49. package/dist/src/commands/ops/ops-use.command.js +0 -76
  50. package/dist/src/commands/ops/ops-use.command.js.map +0 -1
  51. package/dist/src/commands/ops/ops.command.d.ts +0 -7
  52. package/dist/src/commands/ops/ops.command.js +0 -56
  53. package/dist/src/commands/ops/ops.command.js.map +0 -1
  54. package/dist/src/commands/ops/ops.helpers.d.ts +0 -2
  55. package/dist/src/commands/ops/ops.helpers.js +0 -11
  56. package/dist/src/commands/ops/ops.helpers.js.map +0 -1
  57. package/dist/src/commands/ops/ops.module.d.ts +0 -2
  58. package/dist/src/commands/ops/ops.module.js +0 -36
  59. package/dist/src/commands/ops/ops.module.js.map +0 -1
  60. package/dist/src/commands/pack/pack.command.d.ts +0 -51
  61. package/dist/src/commands/pack/pack.command.js +0 -355
  62. package/dist/src/commands/pack/pack.command.js.map +0 -1
  63. package/dist/src/commands/pack/pack.module.d.ts +0 -2
  64. package/dist/src/commands/pack/pack.module.js +0 -27
  65. package/dist/src/commands/pack/pack.module.js.map +0 -1
  66. package/dist/src/core/config/config.module.d.ts +0 -2
  67. package/dist/src/core/config/config.module.js +0 -23
  68. package/dist/src/core/config/config.module.js.map +0 -1
  69. package/dist/src/core/config/config.schema.d.ts +0 -19
  70. package/dist/src/core/config/config.schema.js +0 -56
  71. package/dist/src/core/config/config.schema.js.map +0 -1
  72. package/dist/src/core/config/config.service.d.ts +0 -7
  73. package/dist/src/core/config/config.service.js +0 -49
  74. package/dist/src/core/config/config.service.js.map +0 -1
  75. package/dist/src/core/config/prompt.service.d.ts +0 -10
  76. package/dist/src/core/config/prompt.service.js +0 -80
  77. package/dist/src/core/config/prompt.service.js.map +0 -1
  78. package/dist/src/core/file-system/fs.module.d.ts +0 -2
  79. package/dist/src/core/file-system/fs.module.js +0 -21
  80. package/dist/src/core/file-system/fs.module.js.map +0 -1
  81. package/dist/src/core/file-system/fs.service.d.ts +0 -27
  82. package/dist/src/core/file-system/fs.service.js +0 -203
  83. package/dist/src/core/file-system/fs.service.js.map +0 -1
  84. package/dist/src/core/registry/registry.module.d.ts +0 -2
  85. package/dist/src/core/registry/registry.module.js +0 -22
  86. package/dist/src/core/registry/registry.module.js.map +0 -1
  87. package/dist/src/core/registry/registry.schema.d.ts +0 -24
  88. package/dist/src/core/registry/registry.schema.js +0 -21
  89. package/dist/src/core/registry/registry.schema.js.map +0 -1
  90. package/dist/src/core/registry/registry.service.d.ts +0 -16
  91. package/dist/src/core/registry/registry.service.js +0 -91
  92. package/dist/src/core/registry/registry.service.js.map +0 -1
  93. package/dist/src/core/ui/ui.module.d.ts +0 -2
  94. package/dist/src/core/ui/ui.module.js +0 -22
  95. package/dist/src/core/ui/ui.module.js.map +0 -1
  96. package/dist/src/core/ui/ui.service.d.ts +0 -22
  97. package/dist/src/core/ui/ui.service.js +0 -43
  98. package/dist/src/core/ui/ui.service.js.map +0 -1
  99. package/dist/src/main.d.ts +0 -2
  100. package/dist/src/main.js +0 -16
  101. package/dist/src/main.js.map +0 -1
  102. package/dist/src/shared/cleaner/cleaner.service.d.ts +0 -23
  103. package/dist/src/shared/cleaner/cleaner.service.js +0 -223
  104. package/dist/src/shared/cleaner/cleaner.service.js.map +0 -1
  105. package/dist/src/shared/cleaner/cleaner.types.d.ts +0 -21
  106. package/dist/src/shared/cleaner/cleaner.types.js +0 -3
  107. package/dist/src/shared/cleaner/cleaner.types.js.map +0 -1
  108. package/dist/src/shared/constants.d.ts +0 -4
  109. package/dist/src/shared/constants.js +0 -113
  110. package/dist/src/shared/constants.js.map +0 -1
  111. package/dist/src/shared/deps/deps.module.d.ts +0 -2
  112. package/dist/src/shared/deps/deps.module.js +0 -21
  113. package/dist/src/shared/deps/deps.module.js.map +0 -1
  114. package/dist/src/shared/deps/deps.service.d.ts +0 -15
  115. package/dist/src/shared/deps/deps.service.js +0 -114
  116. package/dist/src/shared/deps/deps.service.js.map +0 -1
  117. package/dist/src/shared/git/git.module.d.ts +0 -2
  118. package/dist/src/shared/git/git.module.js +0 -21
  119. package/dist/src/shared/git/git.module.js.map +0 -1
  120. package/dist/src/shared/git/git.service.d.ts +0 -5
  121. package/dist/src/shared/git/git.service.js +0 -56
  122. package/dist/src/shared/git/git.service.js.map +0 -1
  123. package/dist/src/shared/runbook/runbook.module.d.ts +0 -2
  124. package/dist/src/shared/runbook/runbook.module.js +0 -22
  125. package/dist/src/shared/runbook/runbook.module.js.map +0 -1
  126. package/dist/src/shared/runbook/runbook.service.d.ts +0 -20
  127. package/dist/src/shared/runbook/runbook.service.js +0 -118
  128. package/dist/src/shared/runbook/runbook.service.js.map +0 -1
  129. package/dist/src/shared/runbook/runbook.templates.d.ts +0 -6
  130. package/dist/src/shared/runbook/runbook.templates.js +0 -49
  131. package/dist/src/shared/runbook/runbook.templates.js.map +0 -1
  132. package/dist/src/shared/tokenizer/tokenizer.module.d.ts +0 -2
  133. package/dist/src/shared/tokenizer/tokenizer.module.js +0 -21
  134. package/dist/src/shared/tokenizer/tokenizer.module.js.map +0 -1
  135. package/dist/src/shared/tokenizer/tokenizer.service.d.ts +0 -10
  136. package/dist/src/shared/tokenizer/tokenizer.service.js +0 -36
  137. package/dist/src/shared/tokenizer/tokenizer.service.js.map +0 -1
  138. package/dist/tsconfig.build.tsbuildinfo +0 -1
  139. package/docs/todo.md +0 -7
  140. package/knip.json +0 -10
  141. package/kodu.json +0 -63
  142. package/kodu.schema.json +0 -100
  143. package/lefthook.yml +0 -11
  144. package/nest-cli.json +0 -8
  145. package/registry.schema.json +0 -39
  146. package/scripts/generate-json-schema.ts +0 -27
  147. package/skills/ac/SKILL.md +0 -239
  148. package/skills/al/SKILL.md +0 -98
  149. package/skills/audit/SKILL.md +0 -205
  150. package/skills/audit/audit-baseline-template.yml +0 -188
  151. package/skills/audit/runtime-detect.md +0 -64
  152. package/skills/audit/stacks/_generic.md +0 -41
  153. package/skills/audit/stacks/_registry.md +0 -47
  154. package/skills/audit/stacks/go.md +0 -66
  155. package/skills/audit/stacks/java.md +0 -44
  156. package/skills/audit/stacks/node.md +0 -57
  157. package/skills/audit/stacks/python.md +0 -45
  158. package/skills/audit/stacks/rust.md +0 -44
  159. package/skills/audit-api-contracts/SKILL.md +0 -201
  160. package/skills/audit-architecture/SKILL.md +0 -200
  161. package/skills/audit-bugs/SKILL.md +0 -226
  162. package/skills/audit-concurrency/SKILL.md +0 -197
  163. package/skills/audit-deployment/SKILL.md +0 -218
  164. package/skills/audit-docs/SKILL.md +0 -209
  165. package/skills/audit-errors/SKILL.md +0 -216
  166. package/skills/audit-logging/SKILL.md +0 -197
  167. package/skills/audit-matrix/SKILL.md +0 -245
  168. package/skills/audit-meta/SKILL.md +0 -120
  169. package/skills/audit-naming/SKILL.md +0 -200
  170. package/skills/audit-owasp/SKILL.md +0 -223
  171. package/skills/audit-performance/SKILL.md +0 -199
  172. package/skills/audit-reinvention/SKILL.md +0 -214
  173. package/skills/audit-secrets/SKILL.md +0 -198
  174. package/skills/audit-tests/SKILL.md +0 -210
  175. package/skills/audit-validation/SKILL.md +0 -206
  176. package/skills/audit-verify/SKILL.md +0 -139
  177. package/skills/audit-yagni/SKILL.md +0 -188
  178. package/skills/doc-gen/SKILL.md +0 -490
  179. package/skills/doc-gen/scripts/doc_gen.py +0 -911
  180. package/skills/generate-project-docs/SKILL.md +0 -380
  181. package/skills/implement-project/SKILL.md +0 -409
  182. package/skills/liteend-init/SKILL.md +0 -84
  183. package/skills/litefront-init/SKILL.md +0 -96
  184. package/skills/litefront-prototype/SKILL.md +0 -484
  185. package/skills/ops/SKILL.md +0 -94
  186. package/skills/post-call-task-builder/SKILL.md +0 -419
  187. package/skills/project-setup-standardizer/SKILL.md +0 -285
  188. package/skills/skills-best-practices/SKILL.md +0 -415
  189. package/skills/start/SKILL.md +0 -319
  190. package/skills/tech-blueprint/SKILL.md +0 -890
  191. package/skills/tech-blueprint/scripts/blueprint_validator.py +0 -417
  192. package/src/app.module.ts +0 -29
  193. package/src/commands/clean/clean.command.ts +0 -235
  194. package/src/commands/clean/clean.module.ts +0 -13
  195. package/src/commands/init/init.command.ts +0 -92
  196. package/src/commands/init/init.module.ts +0 -9
  197. package/src/commands/ops/ops-add.command.ts +0 -83
  198. package/src/commands/ops/ops-init.command.ts +0 -125
  199. package/src/commands/ops/ops-list.command.ts +0 -57
  200. package/src/commands/ops/ops-path.command.ts +0 -38
  201. package/src/commands/ops/ops-runbook.command.ts +0 -74
  202. package/src/commands/ops/ops-status.command.ts +0 -47
  203. package/src/commands/ops/ops-use.command.ts +0 -76
  204. package/src/commands/ops/ops.command.ts +0 -42
  205. package/src/commands/ops/ops.helpers.ts +0 -20
  206. package/src/commands/ops/ops.module.ts +0 -23
  207. package/src/commands/pack/pack.command.ts +0 -347
  208. package/src/commands/pack/pack.module.ts +0 -14
  209. package/src/core/config/config.module.ts +0 -10
  210. package/src/core/config/config.schema.ts +0 -58
  211. package/src/core/config/config.service.ts +0 -43
  212. package/src/core/config/prompt.service.ts +0 -80
  213. package/src/core/file-system/fs.module.ts +0 -8
  214. package/src/core/file-system/fs.service.ts +0 -248
  215. package/src/core/registry/registry.module.ts +0 -9
  216. package/src/core/registry/registry.schema.ts +0 -46
  217. package/src/core/registry/registry.service.ts +0 -128
  218. package/src/core/ui/ui.module.ts +0 -9
  219. package/src/core/ui/ui.service.ts +0 -39
  220. package/src/main.ts +0 -12
  221. package/src/shared/cleaner/cleaner.service.ts +0 -289
  222. package/src/shared/cleaner/cleaner.types.ts +0 -23
  223. package/src/shared/constants.ts +0 -118
  224. package/src/shared/deps/deps.module.ts +0 -8
  225. package/src/shared/deps/deps.service.ts +0 -175
  226. package/src/shared/git/git.module.ts +0 -8
  227. package/src/shared/git/git.service.ts +0 -47
  228. package/src/shared/runbook/runbook.module.ts +0 -9
  229. package/src/shared/runbook/runbook.service.ts +0 -164
  230. package/src/shared/runbook/runbook.templates.ts +0 -66
  231. package/src/shared/tokenizer/tokenizer.module.ts +0 -8
  232. package/src/shared/tokenizer/tokenizer.service.ts +0 -30
  233. package/tsconfig.build.json +0 -7
  234. 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
- - **Не задавать вопросов** — только читать, ничего не менять