feat: разворачивание комка finance-plugin — 8 навыков (роутер-реестр)
Эпик роутер-реестр, спека v2 §2, этап 1. Зонтик finance-plugin развёрнут в 8 карточек-навыков + 8 под-узлов #61a..#61h. - 8 карточек: audit-support, close-management, financial-statements, journal-entry, journal-entry-prep, reconciliation, sox-testing, variance-analysis - journal-entry (финализация) и journal-entry-prep (подготовка к close) оставлены обе с разными визитками (решение по дублю) - nodes.yaml: узел #61 → #61a..#61h; триггеры распределены; ADR-012 граница на sox-testing (SOX n/a РФ) - зонтик убран; registry-load.test: 145 узлов / 137 active Регрессия (без 5 pre-existing node:test файлов): 4365 passed, exit 0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
{
|
||||
"skill": "finance-plugin",
|
||||
"kind": "external",
|
||||
"needs": ["финансовая задача (сверка/variance/проводки/отчётность)"],
|
||||
"produces": ["сверка / variance-анализ / проводки / финотчётность"],
|
||||
"constraints": ["US-GAAP-ориентирован, частично применим РФ; SOX not-applicable", "РФ-налоги — за ru-tax-accounting (#63); ADR-012 граница C6/C7", "warehouse-MCP DEFERRED"],
|
||||
"preview-form": "outline",
|
||||
"defaults": ["reconciliation/variance применимы; US-GAAP-скилы с осторожностью"],
|
||||
"key-decisions": ["применим ли скил для РФ-контекста"],
|
||||
"acceptance-criteria": ["финансовая операция корректна, РФ-ограничения учтены"],
|
||||
"source": { "version": "n/a", "hash": "0000000000000000000000000000000000000000000000000000000000000000", "path": "" }
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:audit-support",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"SOX-404 контроль для тестирования"
|
||||
],
|
||||
"produces": [
|
||||
"workpapers, sample selection, классификация deficiency"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"audit-support — поддержка SOX-404 тестирования"
|
||||
],
|
||||
"key-decisions": [
|
||||
"какой контроль и sample"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"тестирование контроля задокументировано"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:close-management",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"процесс month-end close для управления"
|
||||
],
|
||||
"produces": [
|
||||
"close-календарь: sequencing, dependencies, статус"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"close-management — управление закрытием периода"
|
||||
],
|
||||
"key-decisions": [
|
||||
"порядок и блокеры close"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"close спланирован по дням"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:financial-statements",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"данные для финансовой отчётности"
|
||||
],
|
||||
"produces": [
|
||||
"P&L, balance sheet, cash flow + variance vs budget"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"financial-statements — генерация финстейтментов (GAAP)"
|
||||
],
|
||||
"key-decisions": [
|
||||
"какие материальные variance"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"отчётность по GAAP-презентации"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:journal-entry-prep",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"накопления/prepaid/амортизация для month-end"
|
||||
],
|
||||
"produces": [
|
||||
"подготовленные проводки close (accruals/prepaid/depreciation/payroll)"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"journal-entry-prep — подготовка проводок к закрытию"
|
||||
],
|
||||
"key-decisions": [
|
||||
"какие accrual-проводки"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"проводки close подготовлены"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:journal-entry",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"операция для проводки (debits/credits)"
|
||||
],
|
||||
"produces": [
|
||||
"journal entry с обоснованием для аудита"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"journal-entry — финализация проводки"
|
||||
],
|
||||
"key-decisions": [
|
||||
"дебет/кредит и обоснование"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"проводка сбалансирована и обоснована"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:reconciliation",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"GL-баланс vs subledger/bank для сверки"
|
||||
],
|
||||
"produces": [
|
||||
"рекконсиляция + категоризация reconciling items"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"reconciliation — сверка счетов"
|
||||
],
|
||||
"key-decisions": [
|
||||
"источник расхождений"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"счета сверены, расхождения объяснены"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:sox-testing",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"контроль для SOX-404 тестирования (US)"
|
||||
],
|
||||
"produces": [
|
||||
"sample, workpaper, оценка deficiency"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"sox-testing — SOX-404 тестирование (US-only, n/a РФ)"
|
||||
],
|
||||
"key-decisions": [
|
||||
"scope контроля"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"контроль протестирован"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"skill": "finance-plugin:variance-analysis",
|
||||
"kind": "external",
|
||||
"needs": [
|
||||
"финансовые variance для разбора"
|
||||
],
|
||||
"produces": [
|
||||
"декомпозиция драйверов + waterfall + narrative"
|
||||
],
|
||||
"constraints": [
|
||||
"под-навык зонтика finance (US-GAAP финансы)",
|
||||
"граница C6/C7 ADR-012; SOX not-applicable РФ; РФ-учёт — ru-tax-accounting"
|
||||
],
|
||||
"preview-form": "outline",
|
||||
"defaults": [
|
||||
"variance-analysis — разбор бюджет-vs-факт"
|
||||
],
|
||||
"key-decisions": [
|
||||
"драйверы variance"
|
||||
],
|
||||
"acceptance-criteria": [
|
||||
"variance объяснён по драйверам"
|
||||
],
|
||||
"source": {
|
||||
"version": "n/a",
|
||||
"hash": "0000000000000000000000000000000000000000000000000000000000000000",
|
||||
"path": ""
|
||||
}
|
||||
}
|
||||
+111
-13
@@ -1712,27 +1712,125 @@ nodes:
|
||||
attributes:
|
||||
tooling_section: "§4.35 #60"
|
||||
|
||||
- id: "#61"
|
||||
name: "finance plugin"
|
||||
slug: "finance-plugin"
|
||||
- id: "#61a"
|
||||
name: "finance-audit-support"
|
||||
slug: "finance-plugin:audit-support"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "Плагин для финансовых операций: сверка (reconciliation), variance-анализ, подготовка проводок, финансовая отчётность; US-GAAP-ориентирован, частично применим для РФ; SOX not-applicable."
|
||||
capabilities: "Поддержка SOX-404: workpapers, sample selection, классификация deficiency."
|
||||
triggers:
|
||||
- {keyword: "audit support", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
- id: "#61b"
|
||||
name: "finance-close-management"
|
||||
slug: "finance-plugin:close-management"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "Управление month-end close: sequencing, dependencies, статус по дням."
|
||||
triggers:
|
||||
- {keyword: "close", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
- id: "#61c"
|
||||
name: "finance-financial-statements"
|
||||
slug: "finance-plugin:financial-statements"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "Финстейтменты (P&L, balance sheet, cash flow) + variance vs budget по GAAP."
|
||||
triggers:
|
||||
- {keyword: "us-gaap-отчётность", weight: 1.0}
|
||||
- {keyword: "financial statements", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
- id: "#61d"
|
||||
name: "finance-journal-entry"
|
||||
slug: "finance-plugin:journal-entry"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "Финализация проводки (debits/credits) с обоснованием для аудита."
|
||||
triggers:
|
||||
- {keyword: "проводки", weight: 1.0}
|
||||
- {keyword: "journal entry", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
- id: "#61e"
|
||||
name: "finance-journal-entry-prep"
|
||||
slug: "finance-plugin:journal-entry-prep"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "Подготовка проводок к закрытию: accruals, prepaid, depreciation, payroll. (Подготовка ≠ финализация journal-entry.)"
|
||||
triggers: []
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
- id: "#61f"
|
||||
name: "finance-reconciliation"
|
||||
slug: "finance-plugin:reconciliation"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "Сверка GL vs subledger/bank + категоризация reconciling items."
|
||||
triggers:
|
||||
- {keyword: "сверка", weight: 1.0}
|
||||
- {keyword: "variance-анализ", weight: 1.0}
|
||||
- {keyword: "us-gaap-отчётность", weight: 1.0}
|
||||
- {keyword: "проводки", weight: 1.0}
|
||||
- {keyword: "close", weight: 1.0}
|
||||
- {keyword: "reconciliation", weight: 1.0}
|
||||
- {keyword: "variance", weight: 1.0}
|
||||
- {keyword: "journal entry", weight: 1.0}
|
||||
- {keyword: "financial statements", weight: 1.0}
|
||||
- {keyword: "audit support", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
- id: "#61g"
|
||||
name: "finance-sox-testing"
|
||||
slug: "finance-plugin:sox-testing"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "SOX-404 тестирование контролей (US-only; not-applicable РФ по ADR-012)."
|
||||
triggers: []
|
||||
boundaries:
|
||||
- {adr: "ADR-012", role: "граница C6/C7; US-GAAP-скилы частично применимы; SOX not-applicable РФ; warehouse-MCP DEFERRED"}
|
||||
- {adr: "ADR-012", role: "SOX not-applicable РФ; US-GAAP частично применим"}
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
- id: "#61h"
|
||||
name: "finance-variance-analysis"
|
||||
slug: "finance-plugin:variance-analysis"
|
||||
category: "off-phase"
|
||||
subcategory: "finance-tooling"
|
||||
status: "active"
|
||||
dormancy_reason: null
|
||||
capabilities: "Декомпозиция variance на драйверы + waterfall + narrative (бюджет vs факт)."
|
||||
triggers:
|
||||
- {keyword: "variance-анализ", weight: 1.0}
|
||||
- {keyword: "variance", weight: 1.0}
|
||||
boundaries: []
|
||||
chain_membership: []
|
||||
attributes:
|
||||
tooling_section: "§4.36 #61"
|
||||
|
||||
@@ -118,8 +118,8 @@
|
||||
| product-management (8) | ✅ DONE | 0258b9d (pushed) |
|
||||
| design-plugin (7) | ✅ DONE | bf3d557 (committed, push deferred — observer-race) |
|
||||
| marketing-plugin (8) | ✅ DONE | committed (push deferred) |
|
||||
| operations (9: +process-doc узел) | ✅ DONE | этот коммит (push deferred) |
|
||||
| finance-plugin (7–8) | ⬜ | |
|
||||
| operations (9: +process-doc узел) | ✅ DONE | committed (push deferred) |
|
||||
| finance-plugin (8, journal ×2 оставлены) | ✅ DONE | этот коммит (push deferred) |
|
||||
| brand-voice (3) | ⬜ | |
|
||||
| ui-ux-pro-max (7, +правка PSR) | ⬜ | |
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ import { loadRegistry, clearCache, findByClassification, findByKeyword, findActi
|
||||
describe('registry-load', () => {
|
||||
beforeEach(() => clearCache());
|
||||
|
||||
it('loads registry (138 nodes: разворачивание #33/#19/#57/#36/#42/#46/#74/#51 комков 18.06.2026)', () => {
|
||||
it('loads registry (145 nodes: разворачивание #33/#19/#57/#36/#42/#46/#74/#51/#61 комков 18.06.2026)', () => {
|
||||
const r = loadRegistry();
|
||||
expect(r.nodes).toHaveLength(138);
|
||||
expect(r.nodes).toHaveLength(145);
|
||||
expect(r.version).toBe('0.1.0');
|
||||
});
|
||||
|
||||
@@ -46,9 +46,9 @@ describe('registry-load', () => {
|
||||
it('findActiveNodes excludes non-active (nodes.yaml registry)', () => {
|
||||
const r = loadRegistry();
|
||||
const active = findActiveNodes(r);
|
||||
// 138 nodes total; #1 historic, #17 dormant, #44/#50/#54/#67/#82/#83 deferred;
|
||||
// развёрнуты: #33→2,#19→14,#57→7,#36→2,#42→8,#46→7,#74→8,#51 operations→9 (+8) → 130 active
|
||||
expect(active).toHaveLength(130);
|
||||
// 145 nodes total; #1 historic, #17 dormant, #44/#50/#54/#67/#82/#83 deferred;
|
||||
// развёрнуты: ...,#51→9,#61 finance→8 (+7) → 137 active
|
||||
expect(active).toHaveLength(137);
|
||||
expect(active.map(n => n.id)).toContain('#18');
|
||||
expect(active.map(n => n.id)).toContain('#19a');
|
||||
expect(active.map(n => n.id)).not.toContain('#1');
|
||||
|
||||
Reference in New Issue
Block a user