@tailor-platform/erp-kit 0.5.1 → 0.7.0
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/CHANGELOG.md +29 -0
- package/README.md +10 -10
- package/dist/cli.mjs +499 -81
- package/package.json +1 -1
- package/skills/erp-kit-app-1-requirements/SKILL.md +33 -17
- package/skills/erp-kit-app-2-requirements-review/SKILL.md +12 -0
- package/skills/erp-kit-app-3-plan/SKILL.md +18 -4
- package/skills/erp-kit-app-3-plan/references/resolver-extraction.md +1 -1
- package/skills/erp-kit-app-3-plan/references/screen-extraction.md +1 -1
- package/skills/erp-kit-app-4-plan-review/SKILL.md +12 -0
- package/skills/erp-kit-app-5-impl-backend/SKILL.md +19 -4
- package/skills/erp-kit-app-6-impl-frontend/SKILL.md +12 -0
- package/skills/erp-kit-app-7-impl-review/SKILL.md +14 -2
- package/skills/erp-kit-app-shared/references/progress-protocol.md +77 -0
- package/skills/erp-kit-mock-scenario/SKILL.md +1 -1
- package/skills/erp-kit-module-1-requirements/SKILL.md +1 -1
- package/skills/erp-kit-module-3-plan/SKILL.md +3 -3
- package/skills/erp-kit-module-3-update-plan/SKILL.md +3 -3
- package/skills/erp-kit-module-5-impl/SKILL.md +1 -1
- package/skills/erp-kit-module-6-impl-review/SKILL.md +39 -17
- package/src/commands/app/index.ts +2 -0
- package/src/commands/app/progress/git-context.ts +16 -0
- package/src/commands/app/progress/index.ts +45 -0
- package/src/commands/app/progress/log.ts +49 -0
- package/src/commands/app/progress/progress.test.ts +128 -0
- package/src/commands/app/progress/schema-cmd.ts +10 -0
- package/src/commands/check.test.ts +4 -4
- package/src/commands/generate-doc.ts +1 -1
- package/src/commands/lib/discovery.test.ts +18 -10
- package/src/commands/lib/discovery.ts +17 -9
- package/src/commands/lib/paths.ts +4 -2
- package/src/commands/lib/sync-check-source.test.ts +1 -1
- package/src/commands/lib/sync-check-source.ts +6 -1
- package/src/commands/lib/sync-check-tests.test.ts +127 -6
- package/src/commands/lib/sync-check-tests.ts +82 -4
- package/src/commands/sync-check.ts +10 -3
- package/src/generator/generate-app-code.test.ts +0 -6
- package/src/generator/generate-app-code.ts +47 -22
- package/src/generator/generate-code.test.ts +10 -40
- package/src/generator/generate-code.ts +6 -12
- package/src/generator/stub-templates.test.ts +9 -5
- package/src/generator/stub-templates.ts +16 -9
- package/src/modules/finance-ledger/README.md +50 -0
- package/src/modules/finance-ledger/command/.gitkeep +0 -0
- package/src/modules/finance-ledger/command/addJournalLine.generated.ts +6 -0
- package/src/modules/finance-ledger/command/addJournalLine.test.ts +438 -0
- package/src/modules/finance-ledger/command/addJournalLine.ts +122 -0
- package/src/modules/finance-ledger/command/approveAndLockPeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/approveAndLockPeriod.test.ts +107 -0
- package/src/modules/finance-ledger/command/approveAndLockPeriod.ts +72 -0
- package/src/modules/finance-ledger/command/beginClose.generated.ts +6 -0
- package/src/modules/finance-ledger/command/beginClose.test.ts +106 -0
- package/src/modules/finance-ledger/command/beginClose.ts +58 -0
- package/src/modules/finance-ledger/command/closePeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/closePeriod.test.ts +87 -0
- package/src/modules/finance-ledger/command/closePeriod.ts +44 -0
- package/src/modules/finance-ledger/command/createAccountingPeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/createAccountingPeriod.test.ts +425 -0
- package/src/modules/finance-ledger/command/createAccountingPeriod.ts +133 -0
- package/src/modules/finance-ledger/command/createFiscalYear.generated.ts +6 -0
- package/src/modules/finance-ledger/command/createFiscalYear.test.ts +197 -0
- package/src/modules/finance-ledger/command/createFiscalYear.ts +70 -0
- package/src/modules/finance-ledger/command/createJournalEntry.generated.ts +6 -0
- package/src/modules/finance-ledger/command/createJournalEntry.test.ts +261 -0
- package/src/modules/finance-ledger/command/createJournalEntry.ts +121 -0
- package/src/modules/finance-ledger/command/deleteAccountingPeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/deleteAccountingPeriod.test.ts +71 -0
- package/src/modules/finance-ledger/command/deleteAccountingPeriod.ts +55 -0
- package/src/modules/finance-ledger/command/deleteFiscalYear.generated.ts +6 -0
- package/src/modules/finance-ledger/command/deleteFiscalYear.test.ts +38 -0
- package/src/modules/finance-ledger/command/deleteFiscalYear.ts +34 -0
- package/src/modules/finance-ledger/command/deleteJournalEntry.generated.ts +6 -0
- package/src/modules/finance-ledger/command/deleteJournalEntry.test.ts +58 -0
- package/src/modules/finance-ledger/command/deleteJournalEntry.ts +43 -0
- package/src/modules/finance-ledger/command/executeYearEndClose.generated.ts +6 -0
- package/src/modules/finance-ledger/command/executeYearEndClose.test.ts +239 -0
- package/src/modules/finance-ledger/command/executeYearEndClose.ts +415 -0
- package/src/modules/finance-ledger/command/finalCloseAndLockPeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/finalCloseAndLockPeriod.test.ts +102 -0
- package/src/modules/finance-ledger/command/finalCloseAndLockPeriod.ts +76 -0
- package/src/modules/finance-ledger/command/finalizeFinancialStatement.generated.ts +6 -0
- package/src/modules/finance-ledger/command/finalizeFinancialStatement.test.ts +73 -0
- package/src/modules/finance-ledger/command/finalizeFinancialStatement.ts +73 -0
- package/src/modules/finance-ledger/command/generateFinancialStatement.generated.ts +6 -0
- package/src/modules/finance-ledger/command/generateFinancialStatement.test.ts +311 -0
- package/src/modules/finance-ledger/command/generateFinancialStatement.ts +275 -0
- package/src/modules/finance-ledger/command/generatePreliminaryStatements.generated.ts +6 -0
- package/src/modules/finance-ledger/command/generatePreliminaryStatements.test.ts +152 -0
- package/src/modules/finance-ledger/command/generatePreliminaryStatements.ts +140 -0
- package/src/modules/finance-ledger/command/generateTrialBalance.generated.ts +6 -0
- package/src/modules/finance-ledger/command/generateTrialBalance.test.ts +439 -0
- package/src/modules/finance-ledger/command/generateTrialBalance.ts +268 -0
- package/src/modules/finance-ledger/command/initiatePeriodClose.generated.ts +6 -0
- package/src/modules/finance-ledger/command/initiatePeriodClose.test.ts +153 -0
- package/src/modules/finance-ledger/command/initiatePeriodClose.ts +84 -0
- package/src/modules/finance-ledger/command/openForAdvanceEntry.generated.ts +6 -0
- package/src/modules/finance-ledger/command/openForAdvanceEntry.test.ts +87 -0
- package/src/modules/finance-ledger/command/openForAdvanceEntry.ts +44 -0
- package/src/modules/finance-ledger/command/openPeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/openPeriod.test.ts +90 -0
- package/src/modules/finance-ledger/command/openPeriod.ts +44 -0
- package/src/modules/finance-ledger/command/permanentlyClosePeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/permanentlyClosePeriod.test.ts +87 -0
- package/src/modules/finance-ledger/command/permanentlyClosePeriod.ts +48 -0
- package/src/modules/finance-ledger/command/postAdjustingEntries.generated.ts +6 -0
- package/src/modules/finance-ledger/command/postAdjustingEntries.test.ts +392 -0
- package/src/modules/finance-ledger/command/postAdjustingEntries.ts +156 -0
- package/src/modules/finance-ledger/command/postJournalEntry.generated.ts +6 -0
- package/src/modules/finance-ledger/command/postJournalEntry.test.ts +346 -0
- package/src/modules/finance-ledger/command/postJournalEntry.ts +160 -0
- package/src/modules/finance-ledger/command/processInventoryHandoff.generated.ts +6 -0
- package/src/modules/finance-ledger/command/processInventoryHandoff.test.ts +211 -0
- package/src/modules/finance-ledger/command/processInventoryHandoff.ts +133 -0
- package/src/modules/finance-ledger/command/processManufacturingHandoff.generated.ts +6 -0
- package/src/modules/finance-ledger/command/processManufacturingHandoff.test.ts +221 -0
- package/src/modules/finance-ledger/command/processManufacturingHandoff.ts +133 -0
- package/src/modules/finance-ledger/command/processPurchaseHandoff.generated.ts +6 -0
- package/src/modules/finance-ledger/command/processPurchaseHandoff.test.ts +222 -0
- package/src/modules/finance-ledger/command/processPurchaseHandoff.ts +133 -0
- package/src/modules/finance-ledger/command/processSalesHandoff.generated.ts +6 -0
- package/src/modules/finance-ledger/command/processSalesHandoff.test.ts +257 -0
- package/src/modules/finance-ledger/command/processSalesHandoff.ts +135 -0
- package/src/modules/finance-ledger/command/regenerateFinancialStatement.generated.ts +6 -0
- package/src/modules/finance-ledger/command/regenerateFinancialStatement.test.ts +129 -0
- package/src/modules/finance-ledger/command/regenerateFinancialStatement.ts +186 -0
- package/src/modules/finance-ledger/command/removeJournalLine.generated.ts +6 -0
- package/src/modules/finance-ledger/command/removeJournalLine.test.ts +65 -0
- package/src/modules/finance-ledger/command/removeJournalLine.ts +39 -0
- package/src/modules/finance-ledger/command/reopenPeriod.generated.ts +6 -0
- package/src/modules/finance-ledger/command/reopenPeriod.test.ts +87 -0
- package/src/modules/finance-ledger/command/reopenPeriod.ts +44 -0
- package/src/modules/finance-ledger/command/reverseJournalEntry.generated.ts +6 -0
- package/src/modules/finance-ledger/command/reverseJournalEntry.test.ts +337 -0
- package/src/modules/finance-ledger/command/reverseJournalEntry.ts +140 -0
- package/src/modules/finance-ledger/command/revertSoftLock.generated.ts +6 -0
- package/src/modules/finance-ledger/command/revertSoftLock.test.ts +96 -0
- package/src/modules/finance-ledger/command/revertSoftLock.ts +67 -0
- package/src/modules/finance-ledger/command/updateFiscalYear.generated.ts +6 -0
- package/src/modules/finance-ledger/command/updateFiscalYear.test.ts +138 -0
- package/src/modules/finance-ledger/command/updateFiscalYear.ts +85 -0
- package/src/modules/finance-ledger/command/updateJournalEntry.generated.ts +6 -0
- package/src/modules/finance-ledger/command/updateJournalEntry.test.ts +195 -0
- package/src/modules/finance-ledger/command/updateJournalEntry.ts +86 -0
- package/src/modules/finance-ledger/command/updateJournalLine.generated.ts +6 -0
- package/src/modules/finance-ledger/command/updateJournalLine.test.ts +385 -0
- package/src/modules/finance-ledger/command/updateJournalLine.ts +155 -0
- package/src/modules/finance-ledger/command/verifySubledgerTransfers.generated.ts +6 -0
- package/src/modules/finance-ledger/command/verifySubledgerTransfers.test.ts +201 -0
- package/src/modules/finance-ledger/command/verifySubledgerTransfers.ts +113 -0
- package/src/modules/finance-ledger/command/verifyTrialBalance.generated.ts +6 -0
- package/src/modules/finance-ledger/command/verifyTrialBalance.test.ts +136 -0
- package/src/modules/finance-ledger/command/verifyTrialBalance.ts +97 -0
- package/src/modules/finance-ledger/db/.gitkeep +0 -0
- package/src/modules/finance-ledger/db/accountingPeriod.ts +58 -0
- package/src/modules/finance-ledger/db/financialStatement.ts +92 -0
- package/src/modules/finance-ledger/db/financialStatementLineItem.ts +76 -0
- package/src/modules/finance-ledger/db/fiscalYear.ts +41 -0
- package/src/modules/finance-ledger/db/journalEntry.ts +101 -0
- package/src/modules/finance-ledger/db/journalLine.ts +64 -0
- package/src/modules/finance-ledger/db/periodClose.ts +97 -0
- package/src/modules/finance-ledger/db/trialBalance.ts +63 -0
- package/src/modules/finance-ledger/db/trialBalanceLine.ts +63 -0
- package/src/modules/finance-ledger/docs/commands/AddJournalLine.md +74 -0
- package/src/modules/finance-ledger/docs/commands/ApproveAndLockPeriod.md +53 -0
- package/src/modules/finance-ledger/docs/commands/BeginClose.md +47 -0
- package/src/modules/finance-ledger/docs/commands/ClosePeriod.md +45 -0
- package/src/modules/finance-ledger/docs/commands/CreateAccountingPeriod.md +69 -0
- package/src/modules/finance-ledger/docs/commands/CreateFiscalYear.md +56 -0
- package/src/modules/finance-ledger/docs/commands/CreateJournalEntry.md +63 -0
- package/src/modules/finance-ledger/docs/commands/DeleteAccountingPeriod.md +46 -0
- package/src/modules/finance-ledger/docs/commands/DeleteFiscalYear.md +40 -0
- package/src/modules/finance-ledger/docs/commands/DeleteJournalEntry.md +44 -0
- package/src/modules/finance-ledger/docs/commands/ExecuteYearEndClose.md +81 -0
- package/src/modules/finance-ledger/docs/commands/FinalCloseAndLockPeriod.md +49 -0
- package/src/modules/finance-ledger/docs/commands/FinalizeFinancialStatement.md +43 -0
- package/src/modules/finance-ledger/docs/commands/GenerateFinancialStatement.md +86 -0
- package/src/modules/finance-ledger/docs/commands/GeneratePreliminaryStatements.md +53 -0
- package/src/modules/finance-ledger/docs/commands/GenerateTrialBalance.md +75 -0
- package/src/modules/finance-ledger/docs/commands/InitiatePeriodClose.md +58 -0
- package/src/modules/finance-ledger/docs/commands/OpenForAdvanceEntry.md +44 -0
- package/src/modules/finance-ledger/docs/commands/OpenPeriod.md +45 -0
- package/src/modules/finance-ledger/docs/commands/PermanentlyClosePeriod.md +45 -0
- package/src/modules/finance-ledger/docs/commands/PostAdjustingEntries.md +61 -0
- package/src/modules/finance-ledger/docs/commands/PostJournalEntry.md +81 -0
- package/src/modules/finance-ledger/docs/commands/ProcessInventoryHandoff.md +72 -0
- package/src/modules/finance-ledger/docs/commands/ProcessManufacturingHandoff.md +68 -0
- package/src/modules/finance-ledger/docs/commands/ProcessPurchaseHandoff.md +68 -0
- package/src/modules/finance-ledger/docs/commands/ProcessSalesHandoff.md +71 -0
- package/src/modules/finance-ledger/docs/commands/RegenerateFinancialStatement.md +60 -0
- package/src/modules/finance-ledger/docs/commands/RemoveJournalLine.md +42 -0
- package/src/modules/finance-ledger/docs/commands/ReopenPeriod.md +45 -0
- package/src/modules/finance-ledger/docs/commands/ReverseJournalEntry.md +62 -0
- package/src/modules/finance-ledger/docs/commands/RevertSoftLock.md +49 -0
- package/src/modules/finance-ledger/docs/commands/UpdateFiscalYear.md +60 -0
- package/src/modules/finance-ledger/docs/commands/UpdateJournalEntry.md +50 -0
- package/src/modules/finance-ledger/docs/commands/UpdateJournalLine.md +61 -0
- package/src/modules/finance-ledger/docs/commands/VerifySubledgerTransfers.md +59 -0
- package/src/modules/finance-ledger/docs/commands/VerifyTrialBalance.md +53 -0
- package/src/modules/finance-ledger/docs/features/accounting-period-management.md +110 -0
- package/src/modules/finance-ledger/docs/features/financial-statement-generation.md +115 -0
- package/src/modules/finance-ledger/docs/features/journal-entry-management.md +138 -0
- package/src/modules/finance-ledger/docs/features/period-end-close.md +102 -0
- package/src/modules/finance-ledger/docs/features/subledger-integration.md +141 -0
- package/src/modules/finance-ledger/docs/features/trial-balance.md +99 -0
- package/src/modules/finance-ledger/docs/features/year-end-close.md +84 -0
- package/src/modules/finance-ledger/docs/models/AccountingPeriod.md +71 -0
- package/src/modules/finance-ledger/docs/models/FinancialStatement.md +76 -0
- package/src/modules/finance-ledger/docs/models/FinancialStatementLineItem.md +41 -0
- package/src/modules/finance-ledger/docs/models/FiscalYear.md +41 -0
- package/src/modules/finance-ledger/docs/models/JournalEntry.md +80 -0
- package/src/modules/finance-ledger/docs/models/JournalLine.md +47 -0
- package/src/modules/finance-ledger/docs/models/PeriodClose.md +83 -0
- package/src/modules/finance-ledger/docs/models/TrialBalance.md +56 -0
- package/src/modules/finance-ledger/docs/models/TrialBalanceLine.md +37 -0
- package/src/modules/finance-ledger/docs/queries/GetAccountingPeriod.md +35 -0
- package/src/modules/finance-ledger/docs/queries/GetFinancialStatement.md +38 -0
- package/src/modules/finance-ledger/docs/queries/GetFiscalYear.md +35 -0
- package/src/modules/finance-ledger/docs/queries/GetJournalEntry.md +37 -0
- package/src/modules/finance-ledger/docs/queries/GetPeriodByDate.md +38 -0
- package/src/modules/finance-ledger/docs/queries/GetPeriodClose.md +36 -0
- package/src/modules/finance-ledger/docs/queries/GetSubledgerTransferStatus.md +45 -0
- package/src/modules/finance-ledger/docs/queries/GetTrialBalance.md +38 -0
- package/src/modules/finance-ledger/docs/queries/ListAccountingPeriods.md +46 -0
- package/src/modules/finance-ledger/docs/queries/ListFinancialStatements.md +46 -0
- package/src/modules/finance-ledger/docs/queries/ListFiscalYears.md +42 -0
- package/src/modules/finance-ledger/docs/queries/ListJournalEntries.md +48 -0
- package/src/modules/finance-ledger/docs/queries/ListPeriodCloses.md +46 -0
- package/src/modules/finance-ledger/docs/queries/ListTrialBalances.md +51 -0
- package/src/modules/finance-ledger/executor/.gitkeep +0 -0
- package/src/modules/finance-ledger/generated/enums.ts +109 -0
- package/src/modules/finance-ledger/generated/kysely-tailordb.ts +202 -0
- package/src/modules/finance-ledger/index.ts +2 -0
- package/src/modules/finance-ledger/lib/_db_deps.ts +56 -0
- package/src/modules/finance-ledger/lib/errors.generated.ts +332 -0
- package/src/modules/finance-ledger/lib/permissions.generated.ts +41 -0
- package/src/modules/finance-ledger/lib/types.ts +66 -0
- package/src/modules/finance-ledger/module.ts +262 -0
- package/src/modules/finance-ledger/package.json +26 -0
- package/src/modules/finance-ledger/permissions.ts +3 -0
- package/src/modules/finance-ledger/query/.gitkeep +0 -0
- package/src/modules/finance-ledger/query/getAccountingPeriod.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getAccountingPeriod.test.ts +31 -0
- package/src/modules/finance-ledger/query/getAccountingPeriod.ts +21 -0
- package/src/modules/finance-ledger/query/getFinancialStatement.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getFinancialStatement.test.ts +35 -0
- package/src/modules/finance-ledger/query/getFinancialStatement.ts +29 -0
- package/src/modules/finance-ledger/query/getFiscalYear.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getFiscalYear.test.ts +31 -0
- package/src/modules/finance-ledger/query/getFiscalYear.ts +21 -0
- package/src/modules/finance-ledger/query/getJournalEntry.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getJournalEntry.test.ts +35 -0
- package/src/modules/finance-ledger/query/getJournalEntry.ts +29 -0
- package/src/modules/finance-ledger/query/getPeriodByDate.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getPeriodByDate.test.ts +53 -0
- package/src/modules/finance-ledger/query/getPeriodByDate.ts +27 -0
- package/src/modules/finance-ledger/query/getPeriodClose.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getPeriodClose.test.ts +31 -0
- package/src/modules/finance-ledger/query/getPeriodClose.ts +21 -0
- package/src/modules/finance-ledger/query/getSubledgerTransferStatus.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getSubledgerTransferStatus.test.ts +101 -0
- package/src/modules/finance-ledger/query/getSubledgerTransferStatus.ts +68 -0
- package/src/modules/finance-ledger/query/getTrialBalance.generated.ts +5 -0
- package/src/modules/finance-ledger/query/getTrialBalance.test.ts +33 -0
- package/src/modules/finance-ledger/query/getTrialBalance.ts +30 -0
- package/src/modules/finance-ledger/query/listAccountingPeriods.generated.ts +5 -0
- package/src/modules/finance-ledger/query/listAccountingPeriods.test.ts +81 -0
- package/src/modules/finance-ledger/query/listAccountingPeriods.ts +61 -0
- package/src/modules/finance-ledger/query/listFinancialStatements.generated.ts +5 -0
- package/src/modules/finance-ledger/query/listFinancialStatements.test.ts +76 -0
- package/src/modules/finance-ledger/query/listFinancialStatements.ts +62 -0
- package/src/modules/finance-ledger/query/listFiscalYears.generated.ts +5 -0
- package/src/modules/finance-ledger/query/listFiscalYears.test.ts +63 -0
- package/src/modules/finance-ledger/query/listFiscalYears.ts +45 -0
- package/src/modules/finance-ledger/query/listJournalEntries.generated.ts +5 -0
- package/src/modules/finance-ledger/query/listJournalEntries.test.ts +91 -0
- package/src/modules/finance-ledger/query/listJournalEntries.ts +64 -0
- package/src/modules/finance-ledger/query/listPeriodCloses.generated.ts +5 -0
- package/src/modules/finance-ledger/query/listPeriodCloses.test.ts +63 -0
- package/src/modules/finance-ledger/query/listPeriodCloses.ts +64 -0
- package/src/modules/finance-ledger/query/listTrialBalances.generated.ts +5 -0
- package/src/modules/finance-ledger/query/listTrialBalances.test.ts +78 -0
- package/src/modules/finance-ledger/query/listTrialBalances.ts +56 -0
- package/src/modules/finance-ledger/seed/index.ts +19 -0
- package/src/modules/finance-ledger/tailor.config.ts +13 -0
- package/src/modules/finance-ledger/tailor.d.ts +13 -0
- package/src/modules/finance-ledger/testing/commandTestUtils.ts +35 -0
- package/src/modules/finance-ledger/testing/fixtures.ts +382 -0
- package/src/modules/finance-ledger/tsconfig.json +16 -0
- package/src/modules/inventory/docs/features/inventory-adjustment.md +2 -1
- package/src/modules/inventory/docs/features/scrap-management.md +39 -1
- package/src/modules/manufacturing/README.md +63 -0
- package/src/modules/manufacturing/command/.gitkeep +0 -0
- package/src/modules/manufacturing/command/activateBillOfMaterial.generated.ts +6 -0
- package/src/modules/manufacturing/command/activateBillOfMaterial.test.ts +166 -0
- package/src/modules/manufacturing/command/activateBillOfMaterial.ts +173 -0
- package/src/modules/manufacturing/command/activateRouting.generated.ts +6 -0
- package/src/modules/manufacturing/command/activateRouting.test.ts +152 -0
- package/src/modules/manufacturing/command/activateRouting.ts +92 -0
- package/src/modules/manufacturing/command/activateWorkCenter.generated.ts +6 -0
- package/src/modules/manufacturing/command/activateWorkCenter.test.ts +135 -0
- package/src/modules/manufacturing/command/activateWorkCenter.ts +91 -0
- package/src/modules/manufacturing/command/cancelProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/cancelProductionOrder.test.ts +151 -0
- package/src/modules/manufacturing/command/cancelProductionOrder.ts +114 -0
- package/src/modules/manufacturing/command/closeProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/closeProductionOrder.test.ts +126 -0
- package/src/modules/manufacturing/command/closeProductionOrder.ts +87 -0
- package/src/modules/manufacturing/command/completeProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/completeProductionOrder.test.ts +132 -0
- package/src/modules/manufacturing/command/completeProductionOrder.ts +97 -0
- package/src/modules/manufacturing/command/completeWorkOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/completeWorkOrder.test.ts +369 -0
- package/src/modules/manufacturing/command/completeWorkOrder.ts +212 -0
- package/src/modules/manufacturing/command/createBillOfMaterial.generated.ts +6 -0
- package/src/modules/manufacturing/command/createBillOfMaterial.test.ts +210 -0
- package/src/modules/manufacturing/command/createBillOfMaterial.ts +176 -0
- package/src/modules/manufacturing/command/createProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/createProductionOrder.test.ts +160 -0
- package/src/modules/manufacturing/command/createProductionOrder.ts +129 -0
- package/src/modules/manufacturing/command/createRouting.generated.ts +6 -0
- package/src/modules/manufacturing/command/createRouting.test.ts +168 -0
- package/src/modules/manufacturing/command/createRouting.ts +128 -0
- package/src/modules/manufacturing/command/createWorkCenter.generated.ts +6 -0
- package/src/modules/manufacturing/command/createWorkCenter.test.ts +148 -0
- package/src/modules/manufacturing/command/createWorkCenter.ts +131 -0
- package/src/modules/manufacturing/command/deactivateBillOfMaterial.generated.ts +6 -0
- package/src/modules/manufacturing/command/deactivateBillOfMaterial.test.ts +103 -0
- package/src/modules/manufacturing/command/deactivateBillOfMaterial.ts +78 -0
- package/src/modules/manufacturing/command/deactivateRouting.generated.ts +6 -0
- package/src/modules/manufacturing/command/deactivateRouting.test.ts +112 -0
- package/src/modules/manufacturing/command/deactivateRouting.ts +76 -0
- package/src/modules/manufacturing/command/deactivateWorkCenter.generated.ts +6 -0
- package/src/modules/manufacturing/command/deactivateWorkCenter.test.ts +113 -0
- package/src/modules/manufacturing/command/deactivateWorkCenter.ts +85 -0
- package/src/modules/manufacturing/command/pauseWorkOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/pauseWorkOrder.test.ts +118 -0
- package/src/modules/manufacturing/command/pauseWorkOrder.ts +82 -0
- package/src/modules/manufacturing/command/recordInventoryIssueOutcome.generated.ts +6 -0
- package/src/modules/manufacturing/command/recordInventoryIssueOutcome.test.ts +183 -0
- package/src/modules/manufacturing/command/recordInventoryIssueOutcome.ts +139 -0
- package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.generated.ts +6 -0
- package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.test.ts +120 -0
- package/src/modules/manufacturing/command/recordManufacturingCostSettlementAcknowledgment.ts +110 -0
- package/src/modules/manufacturing/command/releaseProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/releaseProductionOrder.test.ts +220 -0
- package/src/modules/manufacturing/command/releaseProductionOrder.ts +450 -0
- package/src/modules/manufacturing/command/reopenProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/reopenProductionOrder.test.ts +196 -0
- package/src/modules/manufacturing/command/reopenProductionOrder.ts +98 -0
- package/src/modules/manufacturing/command/reportWorkOrderProgress.generated.ts +6 -0
- package/src/modules/manufacturing/command/reportWorkOrderProgress.test.ts +204 -0
- package/src/modules/manufacturing/command/reportWorkOrderProgress.ts +129 -0
- package/src/modules/manufacturing/command/rescheduleProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/rescheduleProductionOrder.test.ts +185 -0
- package/src/modules/manufacturing/command/rescheduleProductionOrder.ts +95 -0
- package/src/modules/manufacturing/command/resumeWorkOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/resumeWorkOrder.test.ts +122 -0
- package/src/modules/manufacturing/command/resumeWorkOrder.ts +94 -0
- package/src/modules/manufacturing/command/reviewManufacturingCostSummary.generated.ts +6 -0
- package/src/modules/manufacturing/command/reviewManufacturingCostSummary.test.ts +231 -0
- package/src/modules/manufacturing/command/reviewManufacturingCostSummary.ts +137 -0
- package/src/modules/manufacturing/command/startWorkOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/startWorkOrder.test.ts +118 -0
- package/src/modules/manufacturing/command/startWorkOrder.ts +126 -0
- package/src/modules/manufacturing/command/technicallyCompleteProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/technicallyCompleteProductionOrder.test.ts +153 -0
- package/src/modules/manufacturing/command/technicallyCompleteProductionOrder.ts +106 -0
- package/src/modules/manufacturing/command/unreleaseProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/unreleaseProductionOrder.test.ts +140 -0
- package/src/modules/manufacturing/command/unreleaseProductionOrder.ts +131 -0
- package/src/modules/manufacturing/command/updateBillOfMaterial.generated.ts +6 -0
- package/src/modules/manufacturing/command/updateBillOfMaterial.test.ts +149 -0
- package/src/modules/manufacturing/command/updateBillOfMaterial.ts +174 -0
- package/src/modules/manufacturing/command/updateProductionOrder.generated.ts +6 -0
- package/src/modules/manufacturing/command/updateProductionOrder.test.ts +112 -0
- package/src/modules/manufacturing/command/updateProductionOrder.ts +145 -0
- package/src/modules/manufacturing/command/updateRouting.generated.ts +6 -0
- package/src/modules/manufacturing/command/updateRouting.test.ts +211 -0
- package/src/modules/manufacturing/command/updateRouting.ts +124 -0
- package/src/modules/manufacturing/command/updateWorkCenter.generated.ts +6 -0
- package/src/modules/manufacturing/command/updateWorkCenter.test.ts +152 -0
- package/src/modules/manufacturing/command/updateWorkCenter.ts +137 -0
- package/src/modules/manufacturing/db/.gitkeep +0 -0
- package/src/modules/manufacturing/db/billOfMaterial.ts +70 -0
- package/src/modules/manufacturing/db/billOfMaterialLine.ts +49 -0
- package/src/modules/manufacturing/db/costVarianceLine.ts +53 -0
- package/src/modules/manufacturing/db/manufacturingCostLine.ts +35 -0
- package/src/modules/manufacturing/db/manufacturingCostSettlementRecord.ts +39 -0
- package/src/modules/manufacturing/db/manufacturingCostSummary.ts +59 -0
- package/src/modules/manufacturing/db/productionOrder.ts +83 -0
- package/src/modules/manufacturing/db/productionOrderBomSnapshot.ts +44 -0
- package/src/modules/manufacturing/db/productionOrderCostBaseline.ts +44 -0
- package/src/modules/manufacturing/db/productionOrderMaterialRequirement.ts +57 -0
- package/src/modules/manufacturing/db/productionOrderRoutingSnapshot.ts +43 -0
- package/src/modules/manufacturing/db/routing.ts +63 -0
- package/src/modules/manufacturing/db/routingOperation.ts +57 -0
- package/src/modules/manufacturing/db/workCenter.ts +87 -0
- package/src/modules/manufacturing/db/workOrder.ts +65 -0
- package/src/modules/manufacturing/db/workOrderExecutionEvent.ts +54 -0
- package/src/modules/manufacturing/docs/commands/ActivateBillOfMaterial.md +50 -0
- package/src/modules/manufacturing/docs/commands/ActivateRouting.md +48 -0
- package/src/modules/manufacturing/docs/commands/ActivateWorkCenter.md +49 -0
- package/src/modules/manufacturing/docs/commands/CancelProductionOrder.md +48 -0
- package/src/modules/manufacturing/docs/commands/CloseProductionOrder.md +46 -0
- package/src/modules/manufacturing/docs/commands/CompleteProductionOrder.md +48 -0
- package/src/modules/manufacturing/docs/commands/CompleteWorkOrder.md +66 -0
- package/src/modules/manufacturing/docs/commands/CreateBillOfMaterial.md +54 -0
- package/src/modules/manufacturing/docs/commands/CreateProductionOrder.md +49 -0
- package/src/modules/manufacturing/docs/commands/CreateRouting.md +50 -0
- package/src/modules/manufacturing/docs/commands/CreateWorkCenter.md +51 -0
- package/src/modules/manufacturing/docs/commands/DeactivateBillOfMaterial.md +45 -0
- package/src/modules/manufacturing/docs/commands/DeactivateRouting.md +45 -0
- package/src/modules/manufacturing/docs/commands/DeactivateWorkCenter.md +45 -0
- package/src/modules/manufacturing/docs/commands/PauseWorkOrder.md +44 -0
- package/src/modules/manufacturing/docs/commands/RecordInventoryIssueOutcome.md +59 -0
- package/src/modules/manufacturing/docs/commands/RecordManufacturingCostSettlementAcknowledgment.md +49 -0
- package/src/modules/manufacturing/docs/commands/ReleaseProductionOrder.md +57 -0
- package/src/modules/manufacturing/docs/commands/ReopenProductionOrder.md +54 -0
- package/src/modules/manufacturing/docs/commands/ReportWorkOrderProgress.md +53 -0
- package/src/modules/manufacturing/docs/commands/RescheduleProductionOrder.md +45 -0
- package/src/modules/manufacturing/docs/commands/ResumeWorkOrder.md +44 -0
- package/src/modules/manufacturing/docs/commands/ReviewManufacturingCostSummary.md +52 -0
- package/src/modules/manufacturing/docs/commands/StartWorkOrder.md +46 -0
- package/src/modules/manufacturing/docs/commands/TechnicallyCompleteProductionOrder.md +51 -0
- package/src/modules/manufacturing/docs/commands/UnreleaseProductionOrder.md +46 -0
- package/src/modules/manufacturing/docs/commands/UpdateBillOfMaterial.md +48 -0
- package/src/modules/manufacturing/docs/commands/UpdateProductionOrder.md +48 -0
- package/src/modules/manufacturing/docs/commands/UpdateRouting.md +52 -0
- package/src/modules/manufacturing/docs/commands/UpdateWorkCenter.md +48 -0
- package/src/modules/manufacturing/docs/features/bill-of-material-management.md +83 -0
- package/src/modules/manufacturing/docs/features/manufacturing-cost-and-variance.md +191 -0
- package/src/modules/manufacturing/docs/features/production-order-lifecycle.md +103 -0
- package/src/modules/manufacturing/docs/features/routing-and-work-center-definition.md +63 -0
- package/src/modules/manufacturing/docs/features/work-order-execution.md +115 -0
- package/src/modules/manufacturing/docs/models/BillOfMaterial.md +60 -0
- package/src/modules/manufacturing/docs/models/ManufacturingCostSummary.md +66 -0
- package/src/modules/manufacturing/docs/models/ProductionOrder.md +76 -0
- package/src/modules/manufacturing/docs/models/Routing.md +58 -0
- package/src/modules/manufacturing/docs/models/WorkCenter.md +56 -0
- package/src/modules/manufacturing/docs/models/WorkOrder.md +63 -0
- package/src/modules/manufacturing/docs/queries/DetectBillOfMaterialCircularReference.md +39 -0
- package/src/modules/manufacturing/docs/queries/ExplodeBillOfMaterial.md +56 -0
- package/src/modules/manufacturing/docs/queries/GetBillOfMaterial.md +37 -0
- package/src/modules/manufacturing/docs/queries/GetManufacturingCostSummary.md +39 -0
- package/src/modules/manufacturing/docs/queries/GetProductionOrder.md +37 -0
- package/src/modules/manufacturing/docs/queries/GetRouting.md +39 -0
- package/src/modules/manufacturing/docs/queries/GetWorkCenter.md +35 -0
- package/src/modules/manufacturing/docs/queries/GetWorkOrder.md +38 -0
- package/src/modules/manufacturing/docs/queries/ListBillOfMaterialsByItem.md +42 -0
- package/src/modules/manufacturing/docs/queries/ListManufacturingCostSummariesByStatus.md +41 -0
- package/src/modules/manufacturing/docs/queries/ListProductionOrdersByStatus.md +41 -0
- package/src/modules/manufacturing/docs/queries/ListRoutingsByItem.md +42 -0
- package/src/modules/manufacturing/docs/queries/ListWorkCentersBySite.md +38 -0
- package/src/modules/manufacturing/docs/queries/ListWorkOrdersByProductionOrder.md +39 -0
- package/src/modules/manufacturing/docs/queries/ListWorkOrdersByWorkCenter.md +43 -0
- package/src/modules/manufacturing/executor/.gitkeep +0 -0
- package/src/modules/manufacturing/generated/enums.ts +113 -0
- package/src/modules/manufacturing/generated/kysely-tailordb.ts +247 -0
- package/src/modules/manufacturing/index.ts +2 -0
- package/src/modules/manufacturing/lib/_db_deps.ts +22 -0
- package/src/modules/manufacturing/lib/errors.generated.ts +592 -0
- package/src/modules/manufacturing/lib/permissions.generated.ts +35 -0
- package/src/modules/manufacturing/lib/types.ts +111 -0
- package/src/modules/manufacturing/module.ts +226 -0
- package/src/modules/manufacturing/permissions.ts +3 -0
- package/src/modules/manufacturing/query/.gitkeep +0 -0
- package/src/modules/manufacturing/query/detectBillOfMaterialCircularReference.generated.ts +5 -0
- package/src/modules/manufacturing/query/detectBillOfMaterialCircularReference.test.ts +115 -0
- package/src/modules/manufacturing/query/detectBillOfMaterialCircularReference.ts +79 -0
- package/src/modules/manufacturing/query/explodeBillOfMaterial.generated.ts +5 -0
- package/src/modules/manufacturing/query/explodeBillOfMaterial.test.ts +445 -0
- package/src/modules/manufacturing/query/explodeBillOfMaterial.ts +306 -0
- package/src/modules/manufacturing/query/getBillOfMaterial.generated.ts +5 -0
- package/src/modules/manufacturing/query/getBillOfMaterial.test.ts +64 -0
- package/src/modules/manufacturing/query/getBillOfMaterial.ts +27 -0
- package/src/modules/manufacturing/query/getManufacturingCostSummary.generated.ts +5 -0
- package/src/modules/manufacturing/query/getManufacturingCostSummary.test.ts +147 -0
- package/src/modules/manufacturing/query/getManufacturingCostSummary.ts +46 -0
- package/src/modules/manufacturing/query/getProductionOrder.generated.ts +5 -0
- package/src/modules/manufacturing/query/getProductionOrder.test.ts +139 -0
- package/src/modules/manufacturing/query/getProductionOrder.ts +84 -0
- package/src/modules/manufacturing/query/getRouting.generated.ts +5 -0
- package/src/modules/manufacturing/query/getRouting.test.ts +71 -0
- package/src/modules/manufacturing/query/getRouting.ts +34 -0
- package/src/modules/manufacturing/query/getWorkCenter.generated.ts +5 -0
- package/src/modules/manufacturing/query/getWorkCenter.test.ts +37 -0
- package/src/modules/manufacturing/query/getWorkCenter.ts +21 -0
- package/src/modules/manufacturing/query/getWorkOrder.generated.ts +5 -0
- package/src/modules/manufacturing/query/getWorkOrder.test.ts +73 -0
- package/src/modules/manufacturing/query/getWorkOrder.ts +28 -0
- package/src/modules/manufacturing/query/listBillOfMaterialsByItem.generated.ts +5 -0
- package/src/modules/manufacturing/query/listBillOfMaterialsByItem.test.ts +107 -0
- package/src/modules/manufacturing/query/listBillOfMaterialsByItem.ts +58 -0
- package/src/modules/manufacturing/query/listManufacturingCostSummariesByStatus.generated.ts +5 -0
- package/src/modules/manufacturing/query/listManufacturingCostSummariesByStatus.test.ts +96 -0
- package/src/modules/manufacturing/query/listManufacturingCostSummariesByStatus.ts +77 -0
- package/src/modules/manufacturing/query/listProductionOrdersByStatus.generated.ts +5 -0
- package/src/modules/manufacturing/query/listProductionOrdersByStatus.test.ts +121 -0
- package/src/modules/manufacturing/query/listProductionOrdersByStatus.ts +83 -0
- package/src/modules/manufacturing/query/listRoutingsByItem.generated.ts +5 -0
- package/src/modules/manufacturing/query/listRoutingsByItem.test.ts +110 -0
- package/src/modules/manufacturing/query/listRoutingsByItem.ts +54 -0
- package/src/modules/manufacturing/query/listWorkCentersBySite.generated.ts +5 -0
- package/src/modules/manufacturing/query/listWorkCentersBySite.test.ts +81 -0
- package/src/modules/manufacturing/query/listWorkCentersBySite.ts +70 -0
- package/src/modules/manufacturing/query/listWorkOrdersByProductionOrder.generated.ts +5 -0
- package/src/modules/manufacturing/query/listWorkOrdersByProductionOrder.test.ts +102 -0
- package/src/modules/manufacturing/query/listWorkOrdersByProductionOrder.ts +53 -0
- package/src/modules/manufacturing/query/listWorkOrdersByWorkCenter.generated.ts +5 -0
- package/src/modules/manufacturing/query/listWorkOrdersByWorkCenter.test.ts +143 -0
- package/src/modules/manufacturing/query/listWorkOrdersByWorkCenter.ts +56 -0
- package/src/modules/manufacturing/seed/index.ts +19 -0
- package/src/modules/manufacturing/tailor.config.ts +13 -0
- package/src/modules/manufacturing/tailor.d.ts +13 -0
- package/src/modules/manufacturing/testing/commandTestUtils.ts +29 -0
- package/src/modules/manufacturing/testing/fixtures.ts +402 -0
- package/src/progress/schema.test.ts +161 -0
- package/src/progress/schema.ts +316 -0
- package/templates/scaffold/app/backend/package.json +7 -2
- package/templates/scaffold/app/backend/src/tests/utils/graphql-client.ts +66 -0
- package/templates/scaffold/app/backend/src/tests/utils/setup.ts +21 -0
- package/templates/scaffold/app/backend/tsconfig.json +9 -2
- package/templates/scaffold/app/backend/vitest.config.ts +18 -0
- package/templates/scaffold/app/frontend/package.json +2 -2
- package/src/generator/generate-stubs.ts +0 -31
package/package.json
CHANGED
|
@@ -7,6 +7,18 @@ description: Create Tier 1-2 documentation (requirements, actors, business-flow)
|
|
|
7
7
|
|
|
8
8
|
Create Tier 1-2 documentation: Requirements, Actors, and Business Flows.
|
|
9
9
|
|
|
10
|
+
## Progress Logging
|
|
11
|
+
|
|
12
|
+
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Required checkpoints: `step.start` (on invocation), `decision` (on user choices), `agent.dispatch`/`agent.result` (on subagent lifecycle), `artifact.create` (on file writes), `validation` (on `erp-kit app check` or build commands), `step.complete` (on finish), `error` (on failures).
|
|
19
|
+
|
|
20
|
+
Bundle all conversation since the last checkpoint into the `conversation` array. Use your session ID as `sessionId`. Use the user's original prompt as `prompt`.
|
|
21
|
+
|
|
10
22
|
## Workflow Phases
|
|
11
23
|
|
|
12
24
|
```
|
|
@@ -28,12 +40,12 @@ Focus on "what" the application should do, not "how" it will be implemented.
|
|
|
28
40
|
|
|
29
41
|
Use AskUserQuestion to clarify undefined requirements. Focus on business-level scope and workflows — not platform capabilities like authentication.
|
|
30
42
|
|
|
31
|
-
| Category | Example Questions
|
|
32
|
-
| ---------------- |
|
|
33
|
-
| Scope | Which steps are MVP-essential? Any steps that can be deferred?
|
|
34
|
-
| Edge Cases | How far to handle cancellation, rejection, or mid-flow abandonment?
|
|
35
|
-
| Actor Boundaries | Are approver and executor separate? What is each actor's operational scope?
|
|
36
|
-
| Business Rules | Which steps are automated vs manual? What conditional branches exist?
|
|
43
|
+
| Category | Example Questions |
|
|
44
|
+
| ---------------- | --------------------------------------------------------------------------- |
|
|
45
|
+
| Scope | Which steps are MVP-essential? Any steps that can be deferred? |
|
|
46
|
+
| Edge Cases | How far to handle cancellation, rejection, or mid-flow abandonment? |
|
|
47
|
+
| Actor Boundaries | Are approver and executor separate? What is each actor's operational scope? |
|
|
48
|
+
| Business Rules | Which steps are automated vs manual? What conditional branches exist? |
|
|
37
49
|
|
|
38
50
|
Ask 3-4 questions at a time using multiSelect where appropriate.
|
|
39
51
|
|
|
@@ -44,13 +56,13 @@ Generate documentation using `erp-kit` CLI. `{APP_ROOT}` is the parent directory
|
|
|
44
56
|
```bash
|
|
45
57
|
# Tier 1: Requirements + project structure
|
|
46
58
|
# Creates {APP_ROOT}/{APP_NAME}/README.md
|
|
47
|
-
erp-kit app init {APP_NAME} {APP_ROOT}
|
|
59
|
+
npx erp-kit app init {APP_NAME} {APP_ROOT}
|
|
48
60
|
|
|
49
61
|
# Tier 2: Actors
|
|
50
|
-
erp-kit app generate doc actors {ACTOR_NAME} -p {APP_ROOT}/{APP_NAME}
|
|
62
|
+
npx erp-kit app generate doc actors {ACTOR_NAME} -p {APP_ROOT}/{APP_NAME}
|
|
51
63
|
|
|
52
64
|
# Tier 2: Business Flows
|
|
53
|
-
erp-kit app generate doc business-flow {FLOW_NAME} -p {APP_ROOT}/{APP_NAME}
|
|
65
|
+
npx erp-kit app generate doc business-flow {FLOW_NAME} -p {APP_ROOT}/{APP_NAME}
|
|
54
66
|
```
|
|
55
67
|
|
|
56
68
|
**Directory structure after init + generate:**
|
|
@@ -80,6 +92,7 @@ After creating business flows, extract and create story documentation.
|
|
|
80
92
|
|
|
81
93
|
1. **Collect** all business flow docs: glob `<APP_ROOT>/docs/business-flow/*/README.md`
|
|
82
94
|
2. **Dispatch story extraction agents** — one Agent per business flow (parallelize if possible). Each agent:
|
|
95
|
+
|
|
83
96
|
- Reads the prompt template from [references/story-extraction.md](references/story-extraction.md)
|
|
84
97
|
- Replace `{{APP_NAME}}` with the resolved app name
|
|
85
98
|
- Replace `{{ACTOR_DOCS}}` with the actor doc file paths
|
|
@@ -90,7 +103,7 @@ After creating business flows, extract and create story documentation.
|
|
|
90
103
|
|
|
91
104
|
```bash
|
|
92
105
|
# For each story identified
|
|
93
|
-
erp-kit app generate doc story <flow>/<actor>--<story> -p {APP_ROOT}/{APP_NAME}
|
|
106
|
+
npx erp-kit app generate doc story <flow>/<actor>--<story> -p {APP_ROOT}/{APP_NAME}
|
|
94
107
|
```
|
|
95
108
|
|
|
96
109
|
4. **Link stories** in business flow READMEs: replace `- TBD` placeholders in each flow's `## Stories` section with actual links:
|
|
@@ -102,18 +115,21 @@ erp-kit app generate doc story <flow>/<actor>--<story> -p {APP_ROOT}/{APP_NAME}
|
|
|
102
115
|
### Phase 4: Validate
|
|
103
116
|
|
|
104
117
|
```bash
|
|
105
|
-
|
|
118
|
+
# NOTE: -p takes {APP_ROOT} (parent directory), NOT {APP_ROOT}/{APP_NAME}.
|
|
119
|
+
# generate doc uses -p {APP_ROOT}/{APP_NAME}, but check uses -p {APP_ROOT}.
|
|
120
|
+
# Example: if app is at apps/user-management, use -p apps
|
|
121
|
+
npx erp-kit app check -p {APP_ROOT}
|
|
106
122
|
```
|
|
107
123
|
|
|
108
|
-
|
|
124
|
+
**Expected passing output:** `✓ No violations found` for each doc type that has files. "No matching files found" appears for doc types not yet created (e.g., screens and resolvers at Tier 1-2) — this is normal and not an error.
|
|
109
125
|
|
|
110
126
|
## Schema Reference
|
|
111
127
|
|
|
112
|
-
| Schema | Tier | Output Path
|
|
113
|
-
| ------------------- | ---- |
|
|
114
|
-
| `requirements.yml` | 1 | `README.md`
|
|
115
|
-
| `actors.yml` | 2 | `docs/actors/<name>.md`
|
|
116
|
-
| `business-flow.yml` | 2 | `docs/business-flow/<flow>/README.md`
|
|
128
|
+
| Schema | Tier | Output Path |
|
|
129
|
+
| ------------------- | ---- | ---------------------------------------------------- |
|
|
130
|
+
| `requirements.yml` | 1 | `README.md` |
|
|
131
|
+
| `actors.yml` | 2 | `docs/actors/<name>.md` |
|
|
132
|
+
| `business-flow.yml` | 2 | `docs/business-flow/<flow>/README.md` |
|
|
117
133
|
| `story.yml` | 2 | `docs/business-flow/<flow>/story/<actor>--<name>.md` |
|
|
118
134
|
|
|
119
135
|
## Next Step
|
|
@@ -7,6 +7,18 @@ description: Review requirements quality and documentation consistency for appli
|
|
|
7
7
|
|
|
8
8
|
Review **requirements quality** and **documentation consistency** for an application's Tier 1-2 documentation.
|
|
9
9
|
|
|
10
|
+
## Progress Logging
|
|
11
|
+
|
|
12
|
+
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Required checkpoints: `step.start` (on invocation), `decision` (on user choices), `agent.dispatch`/`agent.result` (on subagent lifecycle), `artifact.create` (on file writes), `validation` (on `erp-kit app check` or build commands), `step.complete` (on finish), `error` (on failures).
|
|
19
|
+
|
|
20
|
+
Bundle all conversation since the last checkpoint into the `conversation` array. Use your session ID as `sessionId`. Use the user's original prompt as `prompt`.
|
|
21
|
+
|
|
10
22
|
## When to Use
|
|
11
23
|
|
|
12
24
|
- After writing application requirements and business flows (step 1)
|
|
@@ -7,6 +7,18 @@ description: Create Tier 3-4 documentation (screens, resolvers) by breaking down
|
|
|
7
7
|
|
|
8
8
|
Convert Tier 2 business flows and stories into Tier 3 (screens) and Tier 4 (resolvers) documentation using parallel extraction agents.
|
|
9
9
|
|
|
10
|
+
## Progress Logging
|
|
11
|
+
|
|
12
|
+
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Required checkpoints: `step.start` (on invocation), `decision` (on user choices), `agent.dispatch`/`agent.result` (on subagent lifecycle), `artifact.create` (on file writes), `validation` (on `erp-kit app check` or build commands), `step.complete` (on finish), `error` (on failures).
|
|
19
|
+
|
|
20
|
+
Bundle all conversation since the last checkpoint into the `conversation` array. Use your session ID as `sessionId`. Use the user's original prompt as `prompt`.
|
|
21
|
+
|
|
10
22
|
## When to Use
|
|
11
23
|
|
|
12
24
|
- User has Tier 1-2 documentation and wants to plan Tier 3-4
|
|
@@ -40,7 +52,7 @@ Verify at least `STORY_DOCS` is non-empty. If no story docs exist, stop with: "N
|
|
|
40
52
|
Collect module overview:
|
|
41
53
|
|
|
42
54
|
```bash
|
|
43
|
-
erp-kit doc modules
|
|
55
|
+
npx erp-kit doc modules
|
|
44
56
|
```
|
|
45
57
|
|
|
46
58
|
This returns each module's name, overview, command/query/model counts, and dependencies. Save the full output as `MODULE_OVERVIEW` — both agents receive it.
|
|
@@ -100,10 +112,10 @@ Scaffold using `erp-kit` CLI:
|
|
|
100
112
|
|
|
101
113
|
```bash
|
|
102
114
|
# Tier 3: Screens
|
|
103
|
-
erp-kit app generate doc screen <screen-name> -p {APP_ROOT}/{APP_NAME}
|
|
115
|
+
npx erp-kit app generate doc screen <screen-name> -p {APP_ROOT}/{APP_NAME}
|
|
104
116
|
|
|
105
117
|
# Tier 4: Resolvers
|
|
106
|
-
erp-kit app generate doc resolver <resolver-name> -p {APP_ROOT}/{APP_NAME}
|
|
118
|
+
npx erp-kit app generate doc resolver <resolver-name> -p {APP_ROOT}/{APP_NAME}
|
|
107
119
|
```
|
|
108
120
|
|
|
109
121
|
Fill scaffolded docs with details from agent extraction results.
|
|
@@ -119,7 +131,9 @@ Read-only stories should have `None` under `## Resolvers`.
|
|
|
119
131
|
## Step 6: Validate
|
|
120
132
|
|
|
121
133
|
```bash
|
|
122
|
-
|
|
134
|
+
# NOTE: -p takes {APP_ROOT} (parent directory), NOT {APP_ROOT}/{APP_NAME}.
|
|
135
|
+
# generate doc uses -p {APP_ROOT}/{APP_NAME}, but check uses -p {APP_ROOT}.
|
|
136
|
+
npx erp-kit app check -p {APP_ROOT}
|
|
123
137
|
```
|
|
124
138
|
|
|
125
139
|
## Naming Conventions
|
|
@@ -16,7 +16,7 @@ The following modules are available in erp-kit. Use this to map resolvers to rea
|
|
|
16
16
|
To inspect a specific module's commands in detail, run:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
erp-kit doc module <module-name> command <command-name>
|
|
19
|
+
npx erp-kit doc module <module-name> command <command-name>
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## Instructions
|
|
@@ -16,7 +16,7 @@ The following modules are available in erp-kit. Use this to understand which ent
|
|
|
16
16
|
To inspect a specific module's model (domain description, state transitions, invariants, commands), run:
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
erp-kit doc module <module-name> model <model-name>
|
|
19
|
+
npx erp-kit doc module <module-name> model <model-name>
|
|
20
20
|
```
|
|
21
21
|
|
|
22
22
|
## Instructions
|
|
@@ -7,6 +7,18 @@ description: Review parity between Tier 2 (business flows, actors, stories) and
|
|
|
7
7
|
|
|
8
8
|
Review **documentation consistency** across Tier 2 (business flows, actors, stories), Tier 3 (screens), and Tier 4 (resolvers) documentation.
|
|
9
9
|
|
|
10
|
+
## Progress Logging
|
|
11
|
+
|
|
12
|
+
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Required checkpoints: `step.start` (on invocation), `decision` (on user choices), `agent.dispatch`/`agent.result` (on subagent lifecycle), `artifact.create` (on file writes), `validation` (on `erp-kit app check` or build commands), `step.complete` (on finish), `error` (on failures).
|
|
19
|
+
|
|
20
|
+
Bundle all conversation since the last checkpoint into the `conversation` array. Use your session ID as `sessionId`. Use the user's original prompt as `prompt`.
|
|
21
|
+
|
|
10
22
|
## When to Use
|
|
11
23
|
|
|
12
24
|
- After writing Tier 3-4 documentation, check for gaps
|
|
@@ -7,6 +7,18 @@ description: Implement backend code for applications using erp-kit modules. Use
|
|
|
7
7
|
|
|
8
8
|
Implement backend resolvers and application configuration for an application, driven by Tier 1-4 documentation (actors, business flows, stories, screens, resolvers).
|
|
9
9
|
|
|
10
|
+
## Progress Logging
|
|
11
|
+
|
|
12
|
+
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Required checkpoints: `step.start` (on invocation), `decision` (on user choices), `agent.dispatch`/`agent.result` (on subagent lifecycle), `artifact.create` (on file writes), `validation` (on `erp-kit app check` or build commands), `step.complete` (on finish), `error` (on failures).
|
|
19
|
+
|
|
20
|
+
Bundle all conversation since the last checkpoint into the `conversation` array. Use your session ID as `sessionId`. Use the user's original prompt as `prompt`.
|
|
21
|
+
|
|
10
22
|
## When to Use
|
|
11
23
|
|
|
12
24
|
- Implementing backend resolvers from resolver spec docs
|
|
@@ -90,7 +102,10 @@ For each resolver, check whether its spec (`docs/resolver/*.md`) documents error
|
|
|
90
102
|
|
|
91
103
|
Do not directly mutate module-owned tables via Kysely — always use module commands.
|
|
92
104
|
|
|
105
|
+
After resolvers are done, implement the story integration test stubs generated in Phase 1b (`backend/src/tests/stories/`). Each stub has `it()` descriptions from the story doc's `## Test Cases`. Use the scaffolded GraphQL client and `inject("url")` / `inject("token")` to call resolvers. Run `pnpm test:integration` and `pnpm erp-kit app sync-check` to verify.
|
|
106
|
+
|
|
93
107
|
> **Parallelize if possible:** Dispatch one agent per resolver. Each agent writes only to its own files:
|
|
108
|
+
>
|
|
94
109
|
> - `src/resolvers/<resolverName>.ts`
|
|
95
110
|
> - `src/executors/<resolverName>.ts`
|
|
96
111
|
>
|
|
@@ -107,10 +122,10 @@ Do not directly mutate module-owned tables via Kysely — always use module comm
|
|
|
107
122
|
|
|
108
123
|
Frontend implementation requires a deployed backend (for GraphQL schema generation). Prompt the user to:
|
|
109
124
|
|
|
110
|
-
1. Create a workspace and configure `.env` (including `TAILOR_PLATFORM_WORKSPACE_ID`)
|
|
111
|
-
2. Run `pnpm deploy` and `pnpm generate`
|
|
112
|
-
3. Run `pnpm seed` if seed data was created
|
|
113
|
-
4. Retrieve OAuth2 client ID via `tailor-sdk oauth2client get default --json` for frontend `.env`
|
|
125
|
+
1. Create a workspace via `tailor-sdk workspace create --name <NAME> --region <us-west|asia-northeast>` and configure `.env` (including `TAILOR_PLATFORM_WORKSPACE_ID`)
|
|
126
|
+
2. Run `pnpm run deploy` and `pnpm run generate`
|
|
127
|
+
3. Run `pnpm run seed` if seed data was created
|
|
128
|
+
4. Retrieve OAuth2 client ID via `tailor-sdk oauth2client get default --json --env-file-if-exists .env` for frontend `.env`
|
|
114
129
|
|
|
115
130
|
Wait for the user to confirm deployment is complete before proceeding.
|
|
116
131
|
|
|
@@ -7,6 +7,18 @@ description: Implement frontend code for applications. Use after deploying the b
|
|
|
7
7
|
|
|
8
8
|
Implement frontend pages for an application, driven by screen spec documentation and a deployed backend.
|
|
9
9
|
|
|
10
|
+
## Progress Logging
|
|
11
|
+
|
|
12
|
+
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Required checkpoints: `step.start` (on invocation), `decision` (on user choices), `agent.dispatch`/`agent.result` (on subagent lifecycle), `artifact.create` (on file writes), `validation` (on `erp-kit app check` or build commands), `step.complete` (on finish), `error` (on failures).
|
|
19
|
+
|
|
20
|
+
Bundle all conversation since the last checkpoint into the `conversation` array. Use your session ID as `sessionId`. Use the user's original prompt as `prompt`.
|
|
21
|
+
|
|
10
22
|
## When to Use
|
|
11
23
|
|
|
12
24
|
- Implementing frontend pages from screen spec docs
|
|
@@ -7,6 +7,18 @@ description: Review implementation parity between documentation and code for app
|
|
|
7
7
|
|
|
8
8
|
Review **implementation consistency** between Tier 3-4 documentation and actual backend/frontend code.
|
|
9
9
|
|
|
10
|
+
## Progress Logging
|
|
11
|
+
|
|
12
|
+
Log to the audit trail at every checkpoint. See [erp-kit-app-shared/references/progress-protocol.md](../erp-kit-app-shared/references/progress-protocol.md) for the full protocol.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Required checkpoints: `step.start` (on invocation), `decision` (on user choices), `agent.dispatch`/`agent.result` (on subagent lifecycle), `artifact.create` (on file writes), `validation` (on `erp-kit app check` or build commands), `step.complete` (on finish), `error` (on failures).
|
|
19
|
+
|
|
20
|
+
Bundle all conversation since the last checkpoint into the `conversation` array. Use your session ID as `sessionId`. Use the user's original prompt as `prompt`.
|
|
21
|
+
|
|
10
22
|
## When to Use
|
|
11
23
|
|
|
12
24
|
- After backend and frontend implementation, verify code matches documentation
|
|
@@ -60,10 +72,10 @@ Run build checks and source-doc sync check inline:
|
|
|
60
72
|
```bash
|
|
61
73
|
cd <APP_ROOT>/backend && pnpm lint && pnpm typecheck
|
|
62
74
|
cd <APP_ROOT>/frontend && pnpm lint && pnpm typecheck && pnpm build
|
|
63
|
-
erp-kit app sync-check -p <APP_ROOT
|
|
75
|
+
npx erp-kit app sync-check -p <APP_ROOT>
|
|
64
76
|
```
|
|
65
77
|
|
|
66
|
-
Report pass/fail for each check. `sync-check` detects missing resolver implementations
|
|
78
|
+
Report pass/fail for each check. `sync-check` detects missing resolver implementations, orphaned docs, and story doc ↔ integration test case mismatches, so groups A-C agents can skip file-existence checks and focus on content parity.
|
|
67
79
|
|
|
68
80
|
## Step 3: Aggregate Results
|
|
69
81
|
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Progress Logging Protocol
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
All `erp-kit-app-*` skills log to an append-only audit trail at `.erp-kit/progress.jsonl`. This records conversations, decisions, and agent activity across sessions.
|
|
6
|
+
|
|
7
|
+
The log is NOT the source of truth for progress — the produced docs and code are. The log answers "what happened and why."
|
|
8
|
+
|
|
9
|
+
## CLI Commands
|
|
10
|
+
|
|
11
|
+
### Log an event
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npx erp-kit app progress log --json '<ProgressInput JSON>'
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
### Validate without writing
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
npx erp-kit app progress log --dry-run --json '<ProgressInput JSON>'
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Get the JSON Schema
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx erp-kit app progress schema
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## When to Log
|
|
30
|
+
|
|
31
|
+
Log at natural checkpoints — moments where the skill is already pausing to take action. Bundle all conversation since the last checkpoint into the `conversation` array.
|
|
32
|
+
|
|
33
|
+
| Checkpoint | Event type | When |
|
|
34
|
+
|---|---|---|
|
|
35
|
+
| Skill invocation | `step.start` | First thing after skill is invoked |
|
|
36
|
+
| User decision | `decision` | User approves, corrects, or chooses |
|
|
37
|
+
| Subagent launch | `agent.dispatch` | Before dispatching a subagent |
|
|
38
|
+
| Subagent return | `agent.result` | After subagent completes |
|
|
39
|
+
| File write | `artifact.create` | After creating/modifying/deleting a file |
|
|
40
|
+
| Validation | `validation` | After running `erp-kit app check`, build, lint, etc. |
|
|
41
|
+
| Skill completion | `step.complete` | Last thing before skill finishes |
|
|
42
|
+
| Failure | `error` | When something fails |
|
|
43
|
+
| Free-form | `note` | Anything else (e.g., session pause) |
|
|
44
|
+
|
|
45
|
+
## Entry Format
|
|
46
|
+
|
|
47
|
+
Every entry requires:
|
|
48
|
+
|
|
49
|
+
- `v` — Schema version, always `1`
|
|
50
|
+
- `sessionId` — Your AI session ID
|
|
51
|
+
- `prompt` — The user's original prompt (the request that triggered this skill)
|
|
52
|
+
- `event` — Event type from the table above
|
|
53
|
+
- `data` — Event-specific payload (see schema)
|
|
54
|
+
- `conversation` — Array of `{role, message}` since last checkpoint (optional, defaults to `[]`)
|
|
55
|
+
|
|
56
|
+
The CLI auto-adds `timestamp` and `git` context.
|
|
57
|
+
|
|
58
|
+
## Example
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
npx erp-kit app progress log --json '{
|
|
62
|
+
"v": 1,
|
|
63
|
+
"sessionId": "claude-abc123",
|
|
64
|
+
"prompt": "Create screens for manufacturing flows",
|
|
65
|
+
"event": "decision",
|
|
66
|
+
"conversation": [
|
|
67
|
+
{"role": "agent", "message": "Flat list or collapsible tree for BOM?"},
|
|
68
|
+
{"role": "user", "message": "Collapsible tree"}
|
|
69
|
+
],
|
|
70
|
+
"data": {
|
|
71
|
+
"question": "BOM list view style",
|
|
72
|
+
"choice": "Collapsible tree",
|
|
73
|
+
"alternatives": ["Flat list with indent"],
|
|
74
|
+
"rationale": "Better UX for multi-level BOMs"
|
|
75
|
+
}
|
|
76
|
+
}'
|
|
77
|
+
```
|
|
@@ -70,7 +70,7 @@ The final feature set becomes the union of all `Include` features. Proceed with
|
|
|
70
70
|
First, scaffold the module if it doesn't exist:
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
erp-kit module init <module-name> <MODULES_ROOT>/<module-name>
|
|
73
|
+
npx erp-kit module init <module-name> <MODULES_ROOT>/<module-name>
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
Then, for each `Include` feature, launch an Agent:
|
|
@@ -44,9 +44,9 @@ Produce consolidated plan:
|
|
|
44
44
|
Scaffold using `erp-kit` CLI. **Names must be PascalCase** (see [naming convention](references/naming.md)):
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
erp-kit module generate doc model ModelName -p <MODULES_ROOT>/<module-name>
|
|
48
|
-
erp-kit module generate doc command CommandName -p <MODULES_ROOT>/<module-name>
|
|
49
|
-
erp-kit module generate doc query QueryName -p <MODULES_ROOT>/<module-name>
|
|
47
|
+
npx erp-kit module generate doc model ModelName -p <MODULES_ROOT>/<module-name>
|
|
48
|
+
npx erp-kit module generate doc command CommandName -p <MODULES_ROOT>/<module-name>
|
|
49
|
+
npx erp-kit module generate doc query QueryName -p <MODULES_ROOT>/<module-name>
|
|
50
50
|
```
|
|
51
51
|
|
|
52
52
|
Fill in the scaffolded docs with details from the extraction in Step 2.
|
|
@@ -78,9 +78,9 @@ For each item in the fix plan:
|
|
|
78
78
|
Scaffold using `erp-kit` CLI. **Names must be PascalCase** (see [naming convention](references/naming.md)):
|
|
79
79
|
|
|
80
80
|
```bash
|
|
81
|
-
erp-kit module generate doc model ModelName -p <MODULES_ROOT>/<module-name>
|
|
82
|
-
erp-kit module generate doc command CommandName -p <MODULES_ROOT>/<module-name>
|
|
83
|
-
erp-kit module generate doc query QueryName -p <MODULES_ROOT>/<module-name>
|
|
81
|
+
npx erp-kit module generate doc model ModelName -p <MODULES_ROOT>/<module-name>
|
|
82
|
+
npx erp-kit module generate doc command CommandName -p <MODULES_ROOT>/<module-name>
|
|
83
|
+
npx erp-kit module generate doc query QueryName -p <MODULES_ROOT>/<module-name>
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
Populate the new docs using the extraction rules from:
|
|
@@ -37,7 +37,7 @@ Verify at least one doc type exists. If none, stop with: "No docs found for modu
|
|
|
37
37
|
Run generation first to create `.generated.ts` files (error classes, permission definitions, command/query shells) before implementing any code:
|
|
38
38
|
|
|
39
39
|
```bash
|
|
40
|
-
erp-kit module generate code -p <MODULES_ROOT>/<module>
|
|
40
|
+
npx erp-kit module generate code -p <MODULES_ROOT>/<module>
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
Never edit these generated files.
|
|
@@ -31,35 +31,57 @@ Define shared context for all agents:
|
|
|
31
31
|
|
|
32
32
|
Verify at least `MODEL_DOCS`, `COMMAND_DOCS`, or `QUERY_DOCS` is non-empty. If no docs exist, stop with: "No docs found for module <MODULE_NAME>."
|
|
33
33
|
|
|
34
|
-
## Step 2: Dispatch Agents (parallelize
|
|
34
|
+
## Step 2: Dispatch Agents (parallelize ALL agents in a single message)
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
Each agent receives: MODULE_NAME, all relevant doc/code/test file paths for its domain.
|
|
38
|
-
Each agent runs all parity perspectives (doc→code, error, doc→test) internally and returns: structured JSON per [references/impl-parity-report-format.md](references/impl-parity-report-format.md).
|
|
39
|
-
If a doc or code directory is empty, the agent reports "no files found" and skips.
|
|
36
|
+
Split each parity check into its own agent, then further split by file batches when there are many files. Target **~5 agents per domain** (model, command, query) for maximum parallelism. Launch **ALL agents in a single message** — do NOT wait for one domain to finish before starting another.
|
|
40
37
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
38
|
+
If a doc or code directory is empty, skip that agent entirely.
|
|
39
|
+
|
|
40
|
+
### Splitting Strategy
|
|
41
|
+
|
|
42
|
+
1. **Each parity check type = separate agent** (never combine different check types in one agent)
|
|
43
|
+
2. **File batching**: If a check has more than 5 doc files, split docs into batches of 3-5 files each. Each batch becomes its own agent running the same check type on a subset of files.
|
|
44
|
+
3. **Corresponding code/test files**: When batching by doc files, include only the matching code and test files for those specific docs (match by filename stem, e.g., `docs/commands/createFoo.md` → `command/createFoo.ts` + `command/createFoo.test.ts`).
|
|
45
|
+
|
|
46
|
+
### Agent Table
|
|
47
|
+
|
|
48
|
+
| Check Type | Domain | Prompt Template | Inputs per agent |
|
|
49
|
+
| ---------- | ------- | ---------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
|
|
50
|
+
| M-1 | Model | [references/model-doc-code-parity.md](references/model-doc-code-parity.md) | MODEL_DOCS (batch), MODEL_CODE (matching) |
|
|
51
|
+
| C-1 | Command | [references/command-doc-code-parity.md](references/command-doc-code-parity.md) | COMMAND_DOCS (batch), COMMAND_CODE (matching) |
|
|
52
|
+
| C-2 | Command | [references/command-error-implementation-parity.md](references/command-error-implementation-parity.md) | COMMAND_DOCS (batch), COMMAND_CODE (matching), ERROR_DEFS |
|
|
53
|
+
| C-3 | Command | [references/command-doc-test-parity.md](references/command-doc-test-parity.md) | COMMAND_DOCS (batch), COMMAND_TEST_CODE (matching) |
|
|
54
|
+
| Q-1 | Query | [references/query-doc-code-parity.md](references/query-doc-code-parity.md) | QUERY_DOCS (batch), QUERY_CODE (matching) |
|
|
55
|
+
| Q-2 | Query | [references/query-error-implementation-parity.md](references/query-error-implementation-parity.md) | QUERY_DOCS (batch), QUERY_CODE (matching), ERROR_DEFS |
|
|
56
|
+
| Q-3 | Query | [references/query-doc-test-parity.md](references/query-doc-test-parity.md) | QUERY_DOCS (batch), QUERY_TEST_CODE (matching) |
|
|
57
|
+
|
|
58
|
+
### Batching Example
|
|
59
|
+
|
|
60
|
+
If a module has 8 command docs: split into 3 batches (3+3+2). Each batch spawns 3 agents (C-1, C-2, C-3) → 9 command agents total. If it has 4 command docs: no batching needed, 3 agents (C-1, C-2, C-3).
|
|
61
|
+
|
|
62
|
+
For model docs: if 6 models → 2 batches (3+3) → 2 agents (M-1 × 2). If 3 models → 1 agent.
|
|
63
|
+
|
|
64
|
+
### Agent Dispatch
|
|
46
65
|
|
|
47
66
|
For each agent:
|
|
48
67
|
|
|
49
|
-
1. Read
|
|
68
|
+
1. Read the prompt template file for that check type
|
|
50
69
|
2. Replace `{{MODULE_NAME}}` with the resolved module name
|
|
51
|
-
3. Replace `{{MODEL_DOCS}}`, `{{COMMAND_DOCS}}`, `{{QUERY_DOCS}}`, `{{MODEL_CODE}}`, `{{COMMAND_CODE}}`, `{{QUERY_CODE}}`, `{{COMMAND_TEST_CODE}}`, `{{QUERY_TEST_CODE}}`, `{{ERROR_DEFS}}` with the actual file paths
|
|
52
|
-
4.
|
|
70
|
+
3. Replace template placeholders (`{{MODEL_DOCS}}`, `{{COMMAND_DOCS}}`, `{{QUERY_DOCS}}`, `{{MODEL_CODE}}`, `{{COMMAND_CODE}}`, `{{QUERY_CODE}}`, `{{COMMAND_TEST_CODE}}`, `{{QUERY_TEST_CODE}}`, `{{ERROR_DEFS}}`) with the actual file paths **for this batch only**
|
|
71
|
+
4. Dispatch the agent with the filled prompt
|
|
72
|
+
|
|
73
|
+
**IMPORTANT**: Launch ALL agents across ALL domains in a single parallel message. Do not serialize by domain.
|
|
53
74
|
|
|
54
75
|
## Step 3: Aggregate Results
|
|
55
76
|
|
|
56
77
|
After ALL agents return:
|
|
57
78
|
|
|
58
79
|
1. Collect the JSON results from each agent
|
|
59
|
-
2. Merge
|
|
60
|
-
3. Merge all `
|
|
61
|
-
4.
|
|
62
|
-
5.
|
|
80
|
+
2. **Merge batches**: If a check type was split across multiple batches (e.g., C-1 batch 1 + C-1 batch 2), merge their `gaps[]` and `inconsistencies[]` into a single result per check type
|
|
81
|
+
3. Merge all `gaps[]` arrays across all check types into a single list
|
|
82
|
+
4. Merge all `inconsistencies[]` arrays into a single list
|
|
83
|
+
5. Deduplicate: if two gaps share the same `source + target + check`, keep only one
|
|
84
|
+
6. Calculate totals across all summaries
|
|
63
85
|
|
|
64
86
|
## Step 4: Severity Validation
|
|
65
87
|
|
|
@@ -8,6 +8,7 @@ import { runGenerateAppCode } from "../../generator/generate-app-code";
|
|
|
8
8
|
import { runGenerateSeed } from "../../generator/generate-seed";
|
|
9
9
|
import { runInitAppWithReadme } from "../init-module";
|
|
10
10
|
import { executeCommand, success, silentFailure } from "../lib/command-result";
|
|
11
|
+
import { progressCommand } from "./progress/index";
|
|
11
12
|
|
|
12
13
|
const cwd = process.cwd();
|
|
13
14
|
|
|
@@ -129,5 +130,6 @@ export const appCommand = defineCommand({
|
|
|
129
130
|
"sync-check": syncCheckCommand,
|
|
130
131
|
init: initCommand,
|
|
131
132
|
generate: generateCommand,
|
|
133
|
+
progress: progressCommand,
|
|
132
134
|
},
|
|
133
135
|
});
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
2
|
+
import type { GitContext } from "../../../progress/schema";
|
|
3
|
+
|
|
4
|
+
export function getGitContext(cwd: string): GitContext {
|
|
5
|
+
const branch = execFileSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], {
|
|
6
|
+
cwd,
|
|
7
|
+
encoding: "utf-8",
|
|
8
|
+
}).trim();
|
|
9
|
+
|
|
10
|
+
const commit = execFileSync("git", ["rev-parse", "--short", "HEAD"], {
|
|
11
|
+
cwd,
|
|
12
|
+
encoding: "utf-8",
|
|
13
|
+
}).trim();
|
|
14
|
+
|
|
15
|
+
return { branch, commit };
|
|
16
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { defineCommand, arg } from "politty";
|
|
3
|
+
import { executeCommand } from "../../lib/command-result";
|
|
4
|
+
import { runProgressLog } from "./log";
|
|
5
|
+
import { runProgressSchema } from "./schema-cmd";
|
|
6
|
+
|
|
7
|
+
const cwd = process.cwd();
|
|
8
|
+
|
|
9
|
+
const logCommand = defineCommand({
|
|
10
|
+
name: "log",
|
|
11
|
+
description: "Append a validated entry to the progress log",
|
|
12
|
+
args: z.object({
|
|
13
|
+
json: arg(z.string(), {
|
|
14
|
+
description: "JSON payload (ProgressInput schema)",
|
|
15
|
+
}),
|
|
16
|
+
"dry-run": arg(z.boolean().default(false), {
|
|
17
|
+
description: "Validate without writing",
|
|
18
|
+
}),
|
|
19
|
+
}),
|
|
20
|
+
run: (args) => {
|
|
21
|
+
return executeCommand(() => {
|
|
22
|
+
return runProgressLog(args.json, args["dry-run"], cwd);
|
|
23
|
+
});
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const schemaCommand = defineCommand({
|
|
28
|
+
name: "schema",
|
|
29
|
+
description: "Output JSON Schema for progress log input",
|
|
30
|
+
args: z.object({}),
|
|
31
|
+
run: () => {
|
|
32
|
+
return executeCommand(() => {
|
|
33
|
+
return runProgressSchema();
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
export const progressCommand = defineCommand({
|
|
39
|
+
name: "progress",
|
|
40
|
+
description: "Audit log for app skill sessions",
|
|
41
|
+
subCommands: {
|
|
42
|
+
log: logCommand,
|
|
43
|
+
schema: schemaCommand,
|
|
44
|
+
},
|
|
45
|
+
});
|