@tailor-platform/erp-kit 0.3.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +30 -0
- package/README.md +35 -7
- package/dist/cli.mjs +783 -272
- package/package.json +5 -4
- package/skills/erp-kit-app-1-requirements/SKILL.md +39 -12
- package/skills/{erp-kit-app-3-plan → erp-kit-app-1-requirements}/references/story-extraction.md +1 -1
- package/skills/erp-kit-app-2-requirements-review/SKILL.md +29 -5
- package/skills/erp-kit-app-2-requirements-review/references/best-practices-check.md +4 -0
- package/skills/erp-kit-app-2-requirements-review/references/boundary-consistency-check.md +4 -0
- package/skills/erp-kit-app-2-requirements-review/references/story-quality-check.md +67 -0
- package/skills/erp-kit-app-3-plan/SKILL.md +51 -50
- package/skills/erp-kit-app-3-plan/references/resolver-extraction.md +24 -18
- package/skills/erp-kit-app-3-plan/references/screen-extraction.md +18 -2
- package/skills/erp-kit-app-4-plan-review/SKILL.md +16 -13
- package/skills/erp-kit-app-5-impl-backend/SKILL.md +19 -11
- package/skills/erp-kit-app-5-impl-backend/references/app-config.md +1 -22
- package/skills/erp-kit-app-5-impl-backend/references/module-wiring.md +0 -1
- package/skills/erp-kit-app-5-impl-backend/references/resolver-patterns.md +13 -4
- package/skills/erp-kit-app-6-impl-frontend/SKILL.md +16 -0
- package/skills/erp-kit-app-6-impl-frontend/references/pages.md +16 -46
- package/skills/erp-kit-app-7-impl-review/SKILL.md +29 -23
- package/skills/erp-kit-app-7-impl-review/references/resolver-doc-code-parity.md +16 -17
- package/skills/erp-kit-module-1-requirements/SKILL.md +6 -12
- package/skills/erp-kit-module-2-requirements-review/SKILL.md +29 -5
- package/skills/erp-kit-module-2-requirements-review/references/requirements-report-format.md +19 -0
- package/skills/erp-kit-module-3-plan/SKILL.md +2 -4
- package/skills/erp-kit-module-4-plan-review/SKILL.md +30 -7
- package/skills/erp-kit-module-4-plan-review/references/parity-report-format.md +15 -0
- package/skills/erp-kit-module-6-impl-review/SKILL.md +21 -7
- package/skills/erp-kit-module-6-impl-review/references/impl-parity-report-format.md +15 -0
- package/skills/erp-kit-module-shared/SKILL.md +4 -0
- package/skills/erp-kit-module-shared/references/commands.md +1 -1
- package/skills/erp-kit-module-shared/references/queries.md +5 -6
- package/src/commands/app/index.ts +28 -17
- package/src/commands/check.test.ts +1 -1
- package/src/commands/check.ts +2 -35
- package/src/commands/doc/index.ts +83 -0
- package/src/commands/doc/module.test.ts +119 -0
- package/src/commands/doc/module.ts +114 -0
- package/src/commands/doc/modules.test.ts +103 -0
- package/src/commands/doc/modules.ts +98 -0
- package/src/commands/doc/search.test.ts +94 -0
- package/src/commands/doc/search.ts +111 -0
- package/src/commands/generate-doc.ts +17 -10
- package/src/commands/index.ts +20 -8
- package/src/commands/lib/command-result.ts +30 -0
- package/src/commands/lib/discovery.test.ts +74 -0
- package/src/commands/lib/discovery.ts +106 -0
- package/src/commands/lib/paths.ts +22 -0
- package/src/commands/lib/sync-check-source.test.ts +197 -0
- package/src/commands/lib/sync-check-source.ts +100 -0
- package/src/commands/lib/sync-check-tests.test.ts +178 -0
- package/src/commands/lib/sync-check-tests.ts +69 -0
- package/src/commands/mock/index.ts +11 -6
- package/src/commands/module/generate.ts +13 -8
- package/src/commands/module/index.ts +17 -21
- package/src/commands/parse-doc-test-cases.ts +13 -2
- package/src/commands/sync-check.test.ts +6 -364
- package/src/commands/sync-check.ts +7 -251
- package/src/generator/generate-app-code.test.ts +121 -0
- package/src/generator/generate-app-code.ts +51 -0
- package/src/generator/generate-code-boilerplate.test.ts +1 -2
- package/src/generator/generate-code.test.ts +43 -12
- package/src/generator/generate-code.ts +12 -226
- package/src/generator/generate-errors.ts +34 -0
- package/src/generator/generate-permissions.ts +12 -0
- package/src/generator/generate-shells.ts +28 -0
- package/src/generator/generate-stubs.ts +31 -0
- package/src/generator/parse-resolver-doc.test.ts +89 -0
- package/src/generator/parse-resolver-doc.ts +125 -0
- package/src/generator/scaffold.ts +57 -0
- package/src/generator/stub-templates.test.ts +55 -0
- package/src/generator/stub-templates.ts +145 -0
- package/src/module.ts +3 -0
- package/src/modules/audit/README.md +46 -0
- package/src/modules/audit/command/activateAuditPolicy.generated.ts +6 -0
- package/src/modules/audit/command/activateAuditPolicy.test.ts +186 -0
- package/src/modules/audit/command/activateAuditPolicy.ts +97 -0
- package/src/modules/audit/command/createAuditPolicy.generated.ts +6 -0
- package/src/modules/audit/command/createAuditPolicy.test.ts +395 -0
- package/src/modules/audit/command/createAuditPolicy.ts +131 -0
- package/src/modules/audit/command/deactivateAuditPolicy.generated.ts +6 -0
- package/src/modules/audit/command/deactivateAuditPolicy.test.ts +138 -0
- package/src/modules/audit/command/deactivateAuditPolicy.ts +58 -0
- package/src/modules/audit/command/deleteAuditPolicy.generated.ts +6 -0
- package/src/modules/audit/command/deleteAuditPolicy.test.ts +121 -0
- package/src/modules/audit/command/deleteAuditPolicy.ts +52 -0
- package/src/modules/audit/command/logAuditEvent.generated.ts +6 -0
- package/src/modules/audit/command/logAuditEvent.test.ts +991 -0
- package/src/modules/audit/command/logAuditEvent.ts +357 -0
- package/src/modules/audit/command/reactivateAuditPolicy.generated.ts +6 -0
- package/src/modules/audit/command/reactivateAuditPolicy.test.ts +143 -0
- package/src/modules/audit/command/reactivateAuditPolicy.ts +79 -0
- package/src/modules/audit/command/registerAuditableEntity.generated.ts +6 -0
- package/src/modules/audit/command/registerAuditableEntity.test.ts +268 -0
- package/src/modules/audit/command/registerAuditableEntity.ts +94 -0
- package/src/modules/audit/command/replaceAuditPolicy.generated.ts +6 -0
- package/src/modules/audit/command/replaceAuditPolicy.test.ts +242 -0
- package/src/modules/audit/command/replaceAuditPolicy.ts +91 -0
- package/src/modules/audit/command/updateAuditPolicy.generated.ts +6 -0
- package/src/modules/audit/command/updateAuditPolicy.test.ts +284 -0
- package/src/modules/audit/command/updateAuditPolicy.ts +151 -0
- package/src/modules/audit/db/auditEntry.ts +47 -0
- package/src/modules/audit/db/auditPolicy.ts +33 -0
- package/src/modules/audit/db/auditableEntity.ts +22 -0
- package/src/modules/audit/db/changeDetail.ts +28 -0
- package/src/modules/audit/db/policyFieldRule.ts +23 -0
- package/src/modules/audit/docs/commands/ActivateAuditPolicy.md +69 -0
- package/src/modules/audit/docs/commands/CreateAuditPolicy.md +79 -0
- package/src/modules/audit/docs/commands/DeactivateAuditPolicy.md +55 -0
- package/src/modules/audit/docs/commands/DeleteAuditPolicy.md +55 -0
- package/src/modules/audit/docs/commands/LogAuditEvent.md +137 -0
- package/src/modules/audit/docs/commands/ReactivateAuditPolicy.md +58 -0
- package/src/modules/audit/docs/commands/RegisterAuditableEntity.md +62 -0
- package/src/modules/audit/docs/commands/ReplaceAuditPolicy.md +72 -0
- package/src/modules/audit/docs/commands/UpdateAuditPolicy.md +77 -0
- package/src/modules/audit/docs/features/audit-event-logging.md +126 -0
- package/src/modules/audit/docs/features/audit-policy-configuration.md +135 -0
- package/src/modules/audit/docs/features/field-level-change-tracking.md +95 -0
- package/src/modules/audit/docs/models/AuditEntry.md +55 -0
- package/src/modules/audit/docs/models/AuditPolicy.md +79 -0
- package/src/modules/audit/docs/models/AuditableEntity.md +38 -0
- package/src/modules/audit/docs/models/ChangeDetail.md +55 -0
- package/src/modules/audit/docs/models/PolicyFieldRule.md +45 -0
- package/src/modules/audit/docs/queries/GetAuditEntry.md +49 -0
- package/src/modules/audit/docs/queries/GetAuditPolicy.md +54 -0
- package/src/modules/audit/docs/queries/GetAuditSummary.md +84 -0
- package/src/modules/audit/docs/queries/GetChangeDetails.md +56 -0
- package/src/modules/audit/docs/queries/ListAuditPolicies.md +58 -0
- package/src/modules/audit/docs/queries/SearchAuditEntries.md +91 -0
- package/src/modules/audit/generated/kysely-tailordb.ts +92 -0
- package/src/modules/audit/index.ts +2 -0
- package/src/modules/audit/lib/_db_deps.ts +13 -0
- package/src/modules/audit/lib/errors.generated.ts +120 -0
- package/src/modules/audit/lib/permissions.generated.ts +14 -0
- package/src/modules/audit/lib/types.ts +33 -0
- package/src/modules/audit/module.ts +57 -0
- package/src/modules/audit/permissions.ts +39 -0
- package/src/modules/audit/query/getAuditEntry.generated.ts +5 -0
- package/src/modules/audit/query/getAuditEntry.test.ts +123 -0
- package/src/modules/audit/query/getAuditEntry.ts +42 -0
- package/src/modules/audit/query/getAuditPolicy.generated.ts +5 -0
- package/src/modules/audit/query/getAuditPolicy.test.ts +169 -0
- package/src/modules/audit/query/getAuditPolicy.ts +48 -0
- package/src/modules/audit/query/getAuditSummary.generated.ts +5 -0
- package/src/modules/audit/query/getAuditSummary.test.ts +632 -0
- package/src/modules/audit/query/getAuditSummary.ts +170 -0
- package/src/modules/audit/query/getChangeDetails.generated.ts +5 -0
- package/src/modules/audit/query/getChangeDetails.test.ts +195 -0
- package/src/modules/audit/query/getChangeDetails.ts +48 -0
- package/src/modules/audit/query/listAuditPolicies.generated.ts +5 -0
- package/src/modules/audit/query/listAuditPolicies.test.ts +239 -0
- package/src/modules/audit/query/listAuditPolicies.ts +100 -0
- package/src/modules/audit/query/searchAuditEntries.generated.ts +5 -0
- package/src/modules/audit/query/searchAuditEntries.test.ts +424 -0
- package/src/modules/audit/query/searchAuditEntries.ts +121 -0
- package/src/modules/audit/tailor.config.ts +13 -0
- package/src/modules/audit/tailor.d.ts +13 -0
- package/src/modules/audit/testing/fixtures.ts +215 -0
- package/src/modules/business-partner/README.md +60 -0
- package/src/modules/business-partner/command/activatePartner.generated.ts +6 -0
- package/src/modules/business-partner/command/activatePartner.test.ts +59 -0
- package/src/modules/business-partner/command/activatePartner.ts +45 -0
- package/src/modules/business-partner/command/assignRoleToPartner.generated.ts +6 -0
- package/src/modules/business-partner/command/assignRoleToPartner.test.ts +113 -0
- package/src/modules/business-partner/command/assignRoleToPartner.ts +72 -0
- package/src/modules/business-partner/command/createContactPerson.generated.ts +6 -0
- package/src/modules/business-partner/command/createContactPerson.test.ts +193 -0
- package/src/modules/business-partner/command/createContactPerson.ts +98 -0
- package/src/modules/business-partner/command/createPartner.generated.ts +6 -0
- package/src/modules/business-partner/command/createPartner.test.ts +179 -0
- package/src/modules/business-partner/command/createPartner.ts +82 -0
- package/src/modules/business-partner/command/createPartnerAddress.generated.ts +6 -0
- package/src/modules/business-partner/command/createPartnerAddress.test.ts +195 -0
- package/src/modules/business-partner/command/createPartnerAddress.ts +119 -0
- package/src/modules/business-partner/command/createPartnerBankAccount.generated.ts +6 -0
- package/src/modules/business-partner/command/createPartnerBankAccount.test.ts +297 -0
- package/src/modules/business-partner/command/createPartnerBankAccount.ts +114 -0
- package/src/modules/business-partner/command/createPartnerIdentification.generated.ts +6 -0
- package/src/modules/business-partner/command/createPartnerIdentification.test.ts +255 -0
- package/src/modules/business-partner/command/createPartnerIdentification.ts +97 -0
- package/src/modules/business-partner/command/deactivateContactPerson.generated.ts +6 -0
- package/src/modules/business-partner/command/deactivateContactPerson.test.ts +70 -0
- package/src/modules/business-partner/command/deactivateContactPerson.ts +54 -0
- package/src/modules/business-partner/command/deactivatePartner.generated.ts +6 -0
- package/src/modules/business-partner/command/deactivatePartner.test.ts +59 -0
- package/src/modules/business-partner/command/deactivatePartner.ts +46 -0
- package/src/modules/business-partner/command/deleteContactPerson.generated.ts +6 -0
- package/src/modules/business-partner/command/deleteContactPerson.test.ts +61 -0
- package/src/modules/business-partner/command/deleteContactPerson.ts +48 -0
- package/src/modules/business-partner/command/deletePartner.generated.ts +6 -0
- package/src/modules/business-partner/command/deletePartner.test.ts +58 -0
- package/src/modules/business-partner/command/deletePartner.ts +46 -0
- package/src/modules/business-partner/command/deletePartnerAddress.generated.ts +6 -0
- package/src/modules/business-partner/command/deletePartnerAddress.test.ts +74 -0
- package/src/modules/business-partner/command/deletePartnerAddress.ts +52 -0
- package/src/modules/business-partner/command/deletePartnerBankAccount.generated.ts +6 -0
- package/src/modules/business-partner/command/deletePartnerBankAccount.test.ts +55 -0
- package/src/modules/business-partner/command/deletePartnerBankAccount.ts +36 -0
- package/src/modules/business-partner/command/deletePartnerIdentification.generated.ts +6 -0
- package/src/modules/business-partner/command/deletePartnerIdentification.test.ts +47 -0
- package/src/modules/business-partner/command/deletePartnerIdentification.ts +37 -0
- package/src/modules/business-partner/command/reactivateContactPerson.generated.ts +6 -0
- package/src/modules/business-partner/command/reactivateContactPerson.test.ts +48 -0
- package/src/modules/business-partner/command/reactivateContactPerson.ts +48 -0
- package/src/modules/business-partner/command/reactivatePartner.generated.ts +6 -0
- package/src/modules/business-partner/command/reactivatePartner.test.ts +59 -0
- package/src/modules/business-partner/command/reactivatePartner.ts +46 -0
- package/src/modules/business-partner/command/removeRoleFromPartner.generated.ts +6 -0
- package/src/modules/business-partner/command/removeRoleFromPartner.test.ts +82 -0
- package/src/modules/business-partner/command/removeRoleFromPartner.ts +73 -0
- package/src/modules/business-partner/command/setDefaultPartnerAddress.generated.ts +6 -0
- package/src/modules/business-partner/command/setDefaultPartnerAddress.test.ts +60 -0
- package/src/modules/business-partner/command/setDefaultPartnerAddress.ts +48 -0
- package/src/modules/business-partner/command/setDefaultPartnerBankAccount.generated.ts +6 -0
- package/src/modules/business-partner/command/setDefaultPartnerBankAccount.test.ts +56 -0
- package/src/modules/business-partner/command/setDefaultPartnerBankAccount.ts +51 -0
- package/src/modules/business-partner/command/setPrimaryContactPerson.generated.ts +6 -0
- package/src/modules/business-partner/command/setPrimaryContactPerson.test.ts +63 -0
- package/src/modules/business-partner/command/setPrimaryContactPerson.ts +55 -0
- package/src/modules/business-partner/command/updateContactPerson.generated.ts +6 -0
- package/src/modules/business-partner/command/updateContactPerson.test.ts +193 -0
- package/src/modules/business-partner/command/updateContactPerson.ts +92 -0
- package/src/modules/business-partner/command/updatePartner.generated.ts +6 -0
- package/src/modules/business-partner/command/updatePartner.test.ts +101 -0
- package/src/modules/business-partner/command/updatePartner.ts +76 -0
- package/src/modules/business-partner/command/updatePartnerAddress.generated.ts +6 -0
- package/src/modules/business-partner/command/updatePartnerAddress.test.ts +148 -0
- package/src/modules/business-partner/command/updatePartnerAddress.ts +64 -0
- package/src/modules/business-partner/command/updatePartnerBankAccount.generated.ts +6 -0
- package/src/modules/business-partner/command/updatePartnerBankAccount.test.ts +249 -0
- package/src/modules/business-partner/command/updatePartnerBankAccount.ts +109 -0
- package/src/modules/business-partner/command/updatePartnerIdentification.generated.ts +6 -0
- package/src/modules/business-partner/command/updatePartnerIdentification.test.ts +162 -0
- package/src/modules/business-partner/command/updatePartnerIdentification.ts +105 -0
- package/src/modules/business-partner/db/.gitkeep +0 -0
- package/src/modules/business-partner/db/businessPartner.ts +59 -0
- package/src/modules/business-partner/db/contactPerson.ts +49 -0
- package/src/modules/business-partner/db/partnerAddress.ts +45 -0
- package/src/modules/business-partner/db/partnerBankAccount.ts +53 -0
- package/src/modules/business-partner/db/partnerIdentification.ts +53 -0
- package/src/modules/business-partner/db/partnerRole.ts +43 -0
- package/src/modules/business-partner/docs/commands/ActivatePartner.md +39 -0
- package/src/modules/business-partner/docs/commands/AssignRoleToPartner.md +49 -0
- package/src/modules/business-partner/docs/commands/CreateContactPerson.md +59 -0
- package/src/modules/business-partner/docs/commands/CreatePartner.md +54 -0
- package/src/modules/business-partner/docs/commands/CreatePartnerAddress.md +60 -0
- package/src/modules/business-partner/docs/commands/CreatePartnerBankAccount.md +68 -0
- package/src/modules/business-partner/docs/commands/CreatePartnerIdentification.md +59 -0
- package/src/modules/business-partner/docs/commands/DeactivateContactPerson.md +42 -0
- package/src/modules/business-partner/docs/commands/DeactivatePartner.md +39 -0
- package/src/modules/business-partner/docs/commands/DeleteContactPerson.md +43 -0
- package/src/modules/business-partner/docs/commands/DeletePartner.md +40 -0
- package/src/modules/business-partner/docs/commands/DeletePartnerAddress.md +40 -0
- package/src/modules/business-partner/docs/commands/DeletePartnerBankAccount.md +35 -0
- package/src/modules/business-partner/docs/commands/DeletePartnerIdentification.md +33 -0
- package/src/modules/business-partner/docs/commands/ReactivateContactPerson.md +38 -0
- package/src/modules/business-partner/docs/commands/ReactivatePartner.md +39 -0
- package/src/modules/business-partner/docs/commands/RemoveRoleFromPartner.md +46 -0
- package/src/modules/business-partner/docs/commands/SetDefaultPartnerAddress.md +38 -0
- package/src/modules/business-partner/docs/commands/SetDefaultPartnerBankAccount.md +38 -0
- package/src/modules/business-partner/docs/commands/SetPrimaryContactPerson.md +43 -0
- package/src/modules/business-partner/docs/commands/UpdateContactPerson.md +66 -0
- package/src/modules/business-partner/docs/commands/UpdatePartner.md +48 -0
- package/src/modules/business-partner/docs/commands/UpdatePartnerAddress.md +46 -0
- package/src/modules/business-partner/docs/commands/UpdatePartnerBankAccount.md +64 -0
- package/src/modules/business-partner/docs/commands/UpdatePartnerIdentification.md +52 -0
- package/src/modules/business-partner/docs/features/contact-person-management.md +70 -0
- package/src/modules/business-partner/docs/features/partner-address-management.md +96 -0
- package/src/modules/business-partner/docs/features/partner-bank-account.md +70 -0
- package/src/modules/business-partner/docs/features/partner-identification.md +76 -0
- package/src/modules/business-partner/docs/features/partner-lifecycle.md +59 -0
- package/src/modules/business-partner/docs/features/partner-role-classification.md +73 -0
- package/src/modules/business-partner/docs/models/BusinessPartner.md +64 -0
- package/src/modules/business-partner/docs/models/ContactPerson.md +62 -0
- package/src/modules/business-partner/docs/models/PartnerAddress.md +52 -0
- package/src/modules/business-partner/docs/models/PartnerBankAccount.md +50 -0
- package/src/modules/business-partner/docs/models/PartnerIdentification.md +46 -0
- package/src/modules/business-partner/docs/models/PartnerRole.md +42 -0
- package/src/modules/business-partner/docs/queries/GetContactPerson.md +34 -0
- package/src/modules/business-partner/docs/queries/GetDefaultPartnerAddress.md +40 -0
- package/src/modules/business-partner/docs/queries/GetDefaultPartnerBankAccount.md +36 -0
- package/src/modules/business-partner/docs/queries/GetPartner.md +35 -0
- package/src/modules/business-partner/docs/queries/GetPartnerAddress.md +34 -0
- package/src/modules/business-partner/docs/queries/GetPartnerBankAccount.md +34 -0
- package/src/modules/business-partner/docs/queries/GetPartnerIdentification.md +34 -0
- package/src/modules/business-partner/docs/queries/GetPartnerRole.md +34 -0
- package/src/modules/business-partner/docs/queries/GetPrimaryContactPerson.md +36 -0
- package/src/modules/business-partner/docs/queries/ListContactPersonsByPartner.md +39 -0
- package/src/modules/business-partner/docs/queries/ListPartnerAddressesByPartner.md +41 -0
- package/src/modules/business-partner/docs/queries/ListPartnerBankAccountsByPartner.md +39 -0
- package/src/modules/business-partner/docs/queries/ListPartnerIdentificationsByPartner.md +41 -0
- package/src/modules/business-partner/docs/queries/ListPartnersByRole.md +47 -0
- package/src/modules/business-partner/executor/.gitkeep +0 -0
- package/src/modules/business-partner/generated/.gitkeep +0 -0
- package/src/modules/business-partner/generated/enums.ts +60 -0
- package/src/modules/business-partner/generated/kysely-tailordb.ts +114 -0
- package/src/modules/business-partner/index.ts +2 -0
- package/src/modules/business-partner/lib/_db_deps.ts +17 -0
- package/src/modules/business-partner/lib/errors.generated.ts +172 -0
- package/src/modules/business-partner/lib/permissions.generated.ts +30 -0
- package/src/modules/business-partner/lib/types.ts +58 -0
- package/src/modules/business-partner/module.ts +181 -0
- package/src/modules/business-partner/permissions.ts +3 -0
- package/src/modules/business-partner/query/.gitkeep +0 -0
- package/src/modules/business-partner/query/getContactPerson.generated.ts +5 -0
- package/src/modules/business-partner/query/getContactPerson.test.ts +31 -0
- package/src/modules/business-partner/query/getContactPerson.ts +16 -0
- package/src/modules/business-partner/query/getDefaultPartnerAddress.generated.ts +5 -0
- package/src/modules/business-partner/query/getDefaultPartnerAddress.test.ts +45 -0
- package/src/modules/business-partner/query/getDefaultPartnerAddress.ts +30 -0
- package/src/modules/business-partner/query/getDefaultPartnerBankAccount.generated.ts +5 -0
- package/src/modules/business-partner/query/getDefaultPartnerBankAccount.test.ts +43 -0
- package/src/modules/business-partner/query/getDefaultPartnerBankAccount.ts +17 -0
- package/src/modules/business-partner/query/getPartner.generated.ts +5 -0
- package/src/modules/business-partner/query/getPartner.test.ts +31 -0
- package/src/modules/business-partner/query/getPartner.ts +16 -0
- package/src/modules/business-partner/query/getPartnerAddress.generated.ts +5 -0
- package/src/modules/business-partner/query/getPartnerAddress.test.ts +31 -0
- package/src/modules/business-partner/query/getPartnerAddress.ts +16 -0
- package/src/modules/business-partner/query/getPartnerBankAccount.generated.ts +5 -0
- package/src/modules/business-partner/query/getPartnerBankAccount.test.ts +31 -0
- package/src/modules/business-partner/query/getPartnerBankAccount.ts +16 -0
- package/src/modules/business-partner/query/getPartnerIdentification.generated.ts +5 -0
- package/src/modules/business-partner/query/getPartnerIdentification.test.ts +31 -0
- package/src/modules/business-partner/query/getPartnerIdentification.ts +16 -0
- package/src/modules/business-partner/query/getPartnerRole.generated.ts +5 -0
- package/src/modules/business-partner/query/getPartnerRole.test.ts +31 -0
- package/src/modules/business-partner/query/getPartnerRole.ts +19 -0
- package/src/modules/business-partner/query/getPrimaryContactPerson.generated.ts +5 -0
- package/src/modules/business-partner/query/getPrimaryContactPerson.test.ts +43 -0
- package/src/modules/business-partner/query/getPrimaryContactPerson.ts +17 -0
- package/src/modules/business-partner/query/listContactPersonsByPartner.generated.ts +5 -0
- package/src/modules/business-partner/query/listContactPersonsByPartner.test.ts +77 -0
- package/src/modules/business-partner/query/listContactPersonsByPartner.ts +32 -0
- package/src/modules/business-partner/query/listPartnerAddressesByPartner.generated.ts +5 -0
- package/src/modules/business-partner/query/listPartnerAddressesByPartner.test.ts +71 -0
- package/src/modules/business-partner/query/listPartnerAddressesByPartner.ts +37 -0
- package/src/modules/business-partner/query/listPartnerBankAccountsByPartner.generated.ts +5 -0
- package/src/modules/business-partner/query/listPartnerBankAccountsByPartner.test.ts +59 -0
- package/src/modules/business-partner/query/listPartnerBankAccountsByPartner.ts +32 -0
- package/src/modules/business-partner/query/listPartnerIdentificationsByPartner.generated.ts +5 -0
- package/src/modules/business-partner/query/listPartnerIdentificationsByPartner.test.ts +72 -0
- package/src/modules/business-partner/query/listPartnerIdentificationsByPartner.ts +40 -0
- package/src/modules/business-partner/query/listPartnersByRole.generated.ts +5 -0
- package/src/modules/business-partner/query/listPartnersByRole.test.ts +103 -0
- package/src/modules/business-partner/query/listPartnersByRole.ts +47 -0
- package/src/modules/business-partner/tailor.config.ts +13 -0
- package/src/modules/business-partner/tailor.d.ts +13 -0
- package/src/modules/business-partner/testing/fixtures.ts +204 -0
- package/src/modules/coa-management/README.md +61 -0
- package/src/modules/coa-management/command/.gitkeep +0 -0
- package/src/modules/coa-management/command/activateAccount.generated.ts +6 -0
- package/src/modules/coa-management/command/activateAccount.test.ts +125 -0
- package/src/modules/coa-management/command/activateAccount.ts +105 -0
- package/src/modules/coa-management/command/activateChartOfAccounts.generated.ts +6 -0
- package/src/modules/coa-management/command/activateChartOfAccounts.test.ts +113 -0
- package/src/modules/coa-management/command/activateChartOfAccounts.ts +104 -0
- package/src/modules/coa-management/command/createAccount.generated.ts +6 -0
- package/src/modules/coa-management/command/createAccount.test.ts +767 -0
- package/src/modules/coa-management/command/createAccount.ts +247 -0
- package/src/modules/coa-management/command/createAccountGroup.generated.ts +6 -0
- package/src/modules/coa-management/command/createAccountGroup.test.ts +494 -0
- package/src/modules/coa-management/command/createAccountGroup.ts +207 -0
- package/src/modules/coa-management/command/createChartOfAccounts.generated.ts +6 -0
- package/src/modules/coa-management/command/createChartOfAccounts.test.ts +502 -0
- package/src/modules/coa-management/command/createChartOfAccounts.ts +267 -0
- package/src/modules/coa-management/command/deactivateAccount.generated.ts +6 -0
- package/src/modules/coa-management/command/deactivateAccount.test.ts +199 -0
- package/src/modules/coa-management/command/deactivateAccount.ts +142 -0
- package/src/modules/coa-management/command/deactivateChartOfAccounts.generated.ts +6 -0
- package/src/modules/coa-management/command/deactivateChartOfAccounts.test.ts +91 -0
- package/src/modules/coa-management/command/deactivateChartOfAccounts.ts +88 -0
- package/src/modules/coa-management/command/deleteAccount.generated.ts +6 -0
- package/src/modules/coa-management/command/deleteAccount.test.ts +122 -0
- package/src/modules/coa-management/command/deleteAccount.ts +103 -0
- package/src/modules/coa-management/command/deleteAccountGroup.generated.ts +6 -0
- package/src/modules/coa-management/command/deleteAccountGroup.test.ts +120 -0
- package/src/modules/coa-management/command/deleteAccountGroup.ts +113 -0
- package/src/modules/coa-management/command/deleteChartOfAccounts.generated.ts +6 -0
- package/src/modules/coa-management/command/deleteChartOfAccounts.test.ts +154 -0
- package/src/modules/coa-management/command/deleteChartOfAccounts.ts +133 -0
- package/src/modules/coa-management/command/moveAccountGroup.generated.ts +6 -0
- package/src/modules/coa-management/command/moveAccountGroup.test.ts +199 -0
- package/src/modules/coa-management/command/moveAccountGroup.ts +145 -0
- package/src/modules/coa-management/command/reactivateAccount.generated.ts +6 -0
- package/src/modules/coa-management/command/reactivateAccount.test.ts +126 -0
- package/src/modules/coa-management/command/reactivateAccount.ts +123 -0
- package/src/modules/coa-management/command/updateAccount.generated.ts +6 -0
- package/src/modules/coa-management/command/updateAccount.test.ts +669 -0
- package/src/modules/coa-management/command/updateAccount.ts +370 -0
- package/src/modules/coa-management/command/updateAccountGroup.generated.ts +6 -0
- package/src/modules/coa-management/command/updateAccountGroup.test.ts +253 -0
- package/src/modules/coa-management/command/updateAccountGroup.ts +191 -0
- package/src/modules/coa-management/command/updateChartOfAccounts.generated.ts +6 -0
- package/src/modules/coa-management/command/updateChartOfAccounts.test.ts +153 -0
- package/src/modules/coa-management/command/updateChartOfAccounts.ts +133 -0
- package/src/modules/coa-management/db/.gitkeep +0 -0
- package/src/modules/coa-management/db/account.ts +119 -0
- package/src/modules/coa-management/db/accountGroup.ts +57 -0
- package/src/modules/coa-management/db/chartOfAccounts.ts +55 -0
- package/src/modules/coa-management/docs/commands/ActivateAccount.md +49 -0
- package/src/modules/coa-management/docs/commands/ActivateChartOfAccounts.md +47 -0
- package/src/modules/coa-management/docs/commands/CreateAccount.md +94 -0
- package/src/modules/coa-management/docs/commands/CreateAccountGroup.md +70 -0
- package/src/modules/coa-management/docs/commands/CreateChartOfAccounts.md +72 -0
- package/src/modules/coa-management/docs/commands/DeactivateAccount.md +65 -0
- package/src/modules/coa-management/docs/commands/DeactivateChartOfAccounts.md +44 -0
- package/src/modules/coa-management/docs/commands/DeleteAccount.md +52 -0
- package/src/modules/coa-management/docs/commands/DeleteAccountGroup.md +50 -0
- package/src/modules/coa-management/docs/commands/DeleteChartOfAccounts.md +48 -0
- package/src/modules/coa-management/docs/commands/MoveAccountGroup.md +57 -0
- package/src/modules/coa-management/docs/commands/ReactivateAccount.md +50 -0
- package/src/modules/coa-management/docs/commands/UpdateAccount.md +102 -0
- package/src/modules/coa-management/docs/commands/UpdateAccountGroup.md +62 -0
- package/src/modules/coa-management/docs/commands/UpdateChartOfAccounts.md +49 -0
- package/src/modules/coa-management/docs/features/account-group-hierarchy.md +81 -0
- package/src/modules/coa-management/docs/features/account-lifecycle.md +80 -0
- package/src/modules/coa-management/docs/features/account-management.md +114 -0
- package/src/modules/coa-management/docs/features/chart-of-accounts-setup.md +86 -0
- package/src/modules/coa-management/docs/models/Account.md +84 -0
- package/src/modules/coa-management/docs/models/AccountGroup.md +55 -0
- package/src/modules/coa-management/docs/models/ChartOfAccounts.md +65 -0
- package/src/modules/coa-management/docs/queries/DetectCircularReference.md +52 -0
- package/src/modules/coa-management/docs/queries/GetAccount.md +42 -0
- package/src/modules/coa-management/docs/queries/GetAccountGroup.md +42 -0
- package/src/modules/coa-management/docs/queries/GetChartOfAccounts.md +48 -0
- package/src/modules/coa-management/docs/queries/ListAccountGroups.md +42 -0
- package/src/modules/coa-management/docs/queries/ListAccounts.md +54 -0
- package/src/modules/coa-management/docs/queries/ListUnassignedAccounts.md +40 -0
- package/src/modules/coa-management/executor/.gitkeep +0 -0
- package/src/modules/coa-management/generated/.gitkeep +0 -0
- package/src/modules/coa-management/generated/enums.ts +45 -0
- package/src/modules/coa-management/generated/kysely-tailordb.ts +81 -0
- package/src/modules/coa-management/index.ts +2 -0
- package/src/modules/coa-management/lib/_db_deps.ts +17 -0
- package/src/modules/coa-management/lib/errors.generated.ts +162 -0
- package/src/modules/coa-management/lib/permissions.generated.ts +20 -0
- package/src/modules/coa-management/lib/types.ts +27 -0
- package/src/modules/coa-management/module.ts +136 -0
- package/src/modules/coa-management/permissions.ts +3 -0
- package/src/modules/coa-management/query/.gitkeep +0 -0
- package/src/modules/coa-management/query/detectCircularReference.generated.ts +5 -0
- package/src/modules/coa-management/query/detectCircularReference.test.ts +88 -0
- package/src/modules/coa-management/query/detectCircularReference.ts +46 -0
- package/src/modules/coa-management/query/getAccount.generated.ts +5 -0
- package/src/modules/coa-management/query/getAccount.test.ts +55 -0
- package/src/modules/coa-management/query/getAccount.ts +25 -0
- package/src/modules/coa-management/query/getAccountGroup.generated.ts +5 -0
- package/src/modules/coa-management/query/getAccountGroup.test.ts +55 -0
- package/src/modules/coa-management/query/getAccountGroup.ts +25 -0
- package/src/modules/coa-management/query/getChartOfAccounts.generated.ts +5 -0
- package/src/modules/coa-management/query/getChartOfAccounts.test.ts +79 -0
- package/src/modules/coa-management/query/getChartOfAccounts.ts +28 -0
- package/src/modules/coa-management/query/listAccountGroups.generated.ts +5 -0
- package/src/modules/coa-management/query/listAccountGroups.test.ts +72 -0
- package/src/modules/coa-management/query/listAccountGroups.ts +49 -0
- package/src/modules/coa-management/query/listAccounts.generated.ts +5 -0
- package/src/modules/coa-management/query/listAccounts.test.ts +136 -0
- package/src/modules/coa-management/query/listAccounts.ts +82 -0
- package/src/modules/coa-management/query/listUnassignedAccounts.generated.ts +5 -0
- package/src/modules/coa-management/query/listUnassignedAccounts.test.ts +96 -0
- package/src/modules/coa-management/query/listUnassignedAccounts.ts +39 -0
- package/src/modules/coa-management/tailor.config.ts +13 -0
- package/src/modules/coa-management/tailor.d.ts +13 -0
- package/src/modules/coa-management/testing/fixtures.ts +201 -0
- package/src/modules/item-management/README.md +1 -1
- package/src/modules/item-management/command/activateItem.generated.ts +1 -1
- package/src/modules/item-management/command/activateItem.ts +1 -1
- package/src/modules/item-management/command/assignItemToTaxonomy.generated.ts +1 -1
- package/src/modules/item-management/command/assignItemToTaxonomy.ts +1 -1
- package/src/modules/item-management/command/createItem.generated.ts +1 -1
- package/src/modules/item-management/command/createItem.test.ts +1 -1
- package/src/modules/item-management/command/createItem.ts +1 -1
- package/src/modules/item-management/command/createTaxonomyNode.generated.ts +1 -1
- package/src/modules/item-management/command/createTaxonomyNode.test.ts +1 -1
- package/src/modules/item-management/command/createTaxonomyNode.ts +1 -1
- package/src/modules/item-management/command/deactivateItem.generated.ts +1 -1
- package/src/modules/item-management/command/deactivateItem.ts +1 -1
- package/src/modules/item-management/command/deleteItem.generated.ts +1 -1
- package/src/modules/item-management/command/deleteItem.ts +1 -1
- package/src/modules/item-management/command/deleteTaxonomyNode.generated.ts +1 -1
- package/src/modules/item-management/command/deleteTaxonomyNode.ts +1 -1
- package/src/modules/item-management/command/moveTaxonomyNode.generated.ts +1 -1
- package/src/modules/item-management/command/moveTaxonomyNode.test.ts +1 -1
- package/src/modules/item-management/command/moveTaxonomyNode.ts +1 -1
- package/src/modules/item-management/command/reactivateItem.generated.ts +1 -1
- package/src/modules/item-management/command/reactivateItem.ts +1 -1
- package/src/modules/item-management/command/removeItemFromTaxonomy.generated.ts +1 -1
- package/src/modules/item-management/command/removeItemFromTaxonomy.ts +1 -1
- package/src/modules/item-management/command/updateItem.generated.ts +1 -1
- package/src/modules/item-management/command/updateItem.test.ts +1 -1
- package/src/modules/item-management/command/updateItem.ts +1 -1
- package/src/modules/item-management/command/updateTaxonomyNode.generated.ts +1 -1
- package/src/modules/item-management/command/updateTaxonomyNode.ts +1 -1
- package/src/modules/item-management/lib/errors.generated.ts +1 -1
- package/src/modules/item-management/lib/permissions.generated.ts +1 -1
- package/src/modules/item-management/lib/types.ts +6 -1
- package/src/modules/item-management/module.ts +1 -1
- package/src/modules/item-management/query/calculateNodeDepth.generated.ts +1 -1
- package/src/modules/item-management/query/calculateNodeDepth.ts +1 -1
- package/src/modules/item-management/query/calculateSubtreeDepth.generated.ts +1 -1
- package/src/modules/item-management/query/calculateSubtreeDepth.ts +1 -1
- package/src/modules/item-management/query/detectCircularReference.generated.ts +1 -1
- package/src/modules/item-management/query/detectCircularReference.ts +1 -1
- package/src/modules/item-management/query/getItem.generated.ts +1 -1
- package/src/modules/item-management/query/getItem.ts +1 -1
- package/src/modules/item-management/query/getItemTaxonomyAssignment.generated.ts +1 -1
- package/src/modules/item-management/query/getItemTaxonomyAssignment.ts +1 -1
- package/src/modules/item-management/query/getTaxonomyNode.generated.ts +1 -1
- package/src/modules/item-management/query/getTaxonomyNode.ts +1 -1
- package/src/modules/item-management/query/getTaxonomyNodeAssignments.generated.ts +1 -1
- package/src/modules/item-management/query/getTaxonomyNodeAssignments.ts +1 -1
- package/src/modules/item-management/query/getTaxonomyNodeChildren.generated.ts +1 -1
- package/src/modules/item-management/query/getTaxonomyNodeChildren.ts +1 -1
- package/src/modules/organization/README.md +57 -0
- package/src/modules/organization/command/.gitkeep +0 -0
- package/src/modules/organization/command/activateCompany.generated.ts +6 -0
- package/src/modules/organization/command/activateCompany.test.ts +184 -0
- package/src/modules/organization/command/activateCompany.ts +92 -0
- package/src/modules/organization/command/createCompany.generated.ts +6 -0
- package/src/modules/organization/command/createCompany.test.ts +156 -0
- package/src/modules/organization/command/createCompany.ts +80 -0
- package/src/modules/organization/command/createDepartment.generated.ts +6 -0
- package/src/modules/organization/command/createDepartment.test.ts +239 -0
- package/src/modules/organization/command/createDepartment.ts +98 -0
- package/src/modules/organization/command/createSite.generated.ts +6 -0
- package/src/modules/organization/command/createSite.test.ts +262 -0
- package/src/modules/organization/command/createSite.ts +155 -0
- package/src/modules/organization/command/deactivateCompany.generated.ts +6 -0
- package/src/modules/organization/command/deactivateCompany.test.ts +58 -0
- package/src/modules/organization/command/deactivateCompany.ts +47 -0
- package/src/modules/organization/command/deactivateDepartment.generated.ts +6 -0
- package/src/modules/organization/command/deactivateDepartment.test.ts +115 -0
- package/src/modules/organization/command/deactivateDepartment.ts +63 -0
- package/src/modules/organization/command/deactivateSite.generated.ts +6 -0
- package/src/modules/organization/command/deactivateSite.test.ts +53 -0
- package/src/modules/organization/command/deactivateSite.ts +47 -0
- package/src/modules/organization/command/deleteCompany.generated.ts +6 -0
- package/src/modules/organization/command/deleteCompany.test.ts +99 -0
- package/src/modules/organization/command/deleteCompany.ts +66 -0
- package/src/modules/organization/command/reactivateCompany.generated.ts +6 -0
- package/src/modules/organization/command/reactivateCompany.test.ts +58 -0
- package/src/modules/organization/command/reactivateCompany.ts +47 -0
- package/src/modules/organization/command/reactivateDepartment.generated.ts +6 -0
- package/src/modules/organization/command/reactivateDepartment.test.ts +59 -0
- package/src/modules/organization/command/reactivateDepartment.ts +47 -0
- package/src/modules/organization/command/reactivateSite.generated.ts +6 -0
- package/src/modules/organization/command/reactivateSite.test.ts +53 -0
- package/src/modules/organization/command/reactivateSite.ts +47 -0
- package/src/modules/organization/command/updateCompany.generated.ts +6 -0
- package/src/modules/organization/command/updateCompany.test.ts +239 -0
- package/src/modules/organization/command/updateCompany.ts +127 -0
- package/src/modules/organization/command/updateDepartment.generated.ts +6 -0
- package/src/modules/organization/command/updateDepartment.test.ts +232 -0
- package/src/modules/organization/command/updateDepartment.ts +120 -0
- package/src/modules/organization/command/updateSite.generated.ts +6 -0
- package/src/modules/organization/command/updateSite.test.ts +274 -0
- package/src/modules/organization/command/updateSite.ts +176 -0
- package/src/modules/organization/db/.gitkeep +0 -0
- package/src/modules/organization/db/company.ts +44 -0
- package/src/modules/organization/db/department.ts +46 -0
- package/src/modules/organization/db/site.ts +44 -0
- package/src/modules/organization/docs/commands/ActivateCompany.md +62 -0
- package/src/modules/organization/docs/commands/CreateCompany.md +49 -0
- package/src/modules/organization/docs/commands/CreateDepartment.md +62 -0
- package/src/modules/organization/docs/commands/CreateSite.md +74 -0
- package/src/modules/organization/docs/commands/DeactivateCompany.md +40 -0
- package/src/modules/organization/docs/commands/DeactivateDepartment.md +44 -0
- package/src/modules/organization/docs/commands/DeactivateSite.md +38 -0
- package/src/modules/organization/docs/commands/DeleteCompany.md +50 -0
- package/src/modules/organization/docs/commands/ReactivateCompany.md +39 -0
- package/src/modules/organization/docs/commands/ReactivateDepartment.md +37 -0
- package/src/modules/organization/docs/commands/ReactivateSite.md +37 -0
- package/src/modules/organization/docs/commands/UpdateCompany.md +58 -0
- package/src/modules/organization/docs/commands/UpdateDepartment.md +64 -0
- package/src/modules/organization/docs/commands/UpdateSite.md +80 -0
- package/src/modules/organization/docs/features/company-lifecycle.md +76 -0
- package/src/modules/organization/docs/features/department-management.md +66 -0
- package/src/modules/organization/docs/features/site-management.md +86 -0
- package/src/modules/organization/docs/models/Company.md +60 -0
- package/src/modules/organization/docs/models/Department.md +57 -0
- package/src/modules/organization/docs/models/Site.md +57 -0
- package/src/modules/organization/docs/queries/DetectDepartmentCircularReference.md +50 -0
- package/src/modules/organization/docs/queries/GetCompany.md +40 -0
- package/src/modules/organization/docs/queries/GetDepartment.md +44 -0
- package/src/modules/organization/docs/queries/GetDepartmentChildren.md +40 -0
- package/src/modules/organization/docs/queries/GetSite.md +37 -0
- package/src/modules/organization/docs/queries/ListDepartmentsByCompany.md +54 -0
- package/src/modules/organization/docs/queries/ListSitesByCompany.md +54 -0
- package/src/modules/organization/executor/.gitkeep +0 -0
- package/src/modules/organization/generated/.gitkeep +0 -0
- package/src/modules/organization/generated/kysely-tailordb.ts +77 -0
- package/src/modules/organization/index.ts +2 -0
- package/src/modules/organization/lib/_db_deps.ts +10 -0
- package/src/modules/organization/lib/errors.generated.ts +117 -0
- package/src/modules/organization/lib/permissions.generated.ts +19 -0
- package/src/modules/organization/lib/types.ts +21 -0
- package/src/modules/organization/module.ts +89 -0
- package/src/modules/organization/permissions.ts +3 -0
- package/src/modules/organization/query/.gitkeep +0 -0
- package/src/modules/organization/query/detectDepartmentCircularReference.generated.ts +5 -0
- package/src/modules/organization/query/detectDepartmentCircularReference.test.ts +102 -0
- package/src/modules/organization/query/detectDepartmentCircularReference.ts +27 -0
- package/src/modules/organization/query/getCompany.generated.ts +5 -0
- package/src/modules/organization/query/getCompany.test.ts +70 -0
- package/src/modules/organization/query/getCompany.ts +16 -0
- package/src/modules/organization/query/getDepartment.generated.ts +5 -0
- package/src/modules/organization/query/getDepartment.test.ts +85 -0
- package/src/modules/organization/query/getDepartment.ts +17 -0
- package/src/modules/organization/query/getDepartmentChildren.generated.ts +5 -0
- package/src/modules/organization/query/getDepartmentChildren.test.ts +75 -0
- package/src/modules/organization/query/getDepartmentChildren.ts +21 -0
- package/src/modules/organization/query/getSite.generated.ts +5 -0
- package/src/modules/organization/query/getSite.test.ts +55 -0
- package/src/modules/organization/query/getSite.ts +16 -0
- package/src/modules/organization/query/listDepartmentsByCompany.generated.ts +5 -0
- package/src/modules/organization/query/listDepartmentsByCompany.test.ts +124 -0
- package/src/modules/organization/query/listDepartmentsByCompany.ts +43 -0
- package/src/modules/organization/query/listSitesByCompany.generated.ts +5 -0
- package/src/modules/organization/query/listSitesByCompany.test.ts +126 -0
- package/src/modules/organization/query/listSitesByCompany.ts +41 -0
- package/src/modules/organization/tailor.config.ts +13 -0
- package/src/modules/organization/tailor.d.ts +13 -0
- package/src/modules/organization/testing/fixtures.ts +155 -0
- package/src/modules/primitives/README.md +1 -1
- package/src/modules/primitives/command/activateCategory.generated.ts +1 -1
- package/src/modules/primitives/command/activateCategory.ts +1 -1
- package/src/modules/primitives/command/activateCurrency.generated.ts +1 -1
- package/src/modules/primitives/command/activateCurrency.ts +1 -1
- package/src/modules/primitives/command/activateUnit.generated.ts +1 -1
- package/src/modules/primitives/command/activateUnit.ts +1 -1
- package/src/modules/primitives/command/createCategory.generated.ts +1 -1
- package/src/modules/primitives/command/createCategory.ts +1 -1
- package/src/modules/primitives/command/createCurrency.generated.ts +1 -1
- package/src/modules/primitives/command/createCurrency.ts +1 -1
- package/src/modules/primitives/command/createExchangeRate.generated.ts +1 -1
- package/src/modules/primitives/command/createExchangeRate.ts +1 -1
- package/src/modules/primitives/command/createUnit.generated.ts +1 -1
- package/src/modules/primitives/command/createUnit.ts +1 -1
- package/src/modules/primitives/command/deactivateCategory.generated.ts +1 -1
- package/src/modules/primitives/command/deactivateCategory.ts +1 -1
- package/src/modules/primitives/command/deactivateCurrency.generated.ts +1 -1
- package/src/modules/primitives/command/deactivateCurrency.ts +1 -1
- package/src/modules/primitives/command/deactivateUnit.generated.ts +1 -1
- package/src/modules/primitives/command/deactivateUnit.ts +1 -1
- package/src/modules/primitives/command/setBaseCurrency.generated.ts +1 -1
- package/src/modules/primitives/command/setBaseCurrency.test.ts +8 -64
- package/src/modules/primitives/command/setBaseCurrency.ts +6 -64
- package/src/modules/primitives/command/setReferenceUnit.generated.ts +1 -1
- package/src/modules/primitives/command/setReferenceUnit.ts +1 -1
- package/src/modules/primitives/docs/commands/ActivateCategory.md +1 -1
- package/src/modules/primitives/docs/commands/ActivateCurrency.md +1 -1
- package/src/modules/primitives/docs/commands/ActivateUnit.md +1 -1
- package/src/modules/primitives/docs/commands/CreateExchangeRate.md +2 -2
- package/src/modules/primitives/docs/commands/CreateUnit.md +1 -1
- package/src/modules/primitives/docs/commands/DeactivateCategory.md +1 -1
- package/src/modules/primitives/docs/commands/DeactivateCurrency.md +1 -1
- package/src/modules/primitives/docs/commands/DeactivateUnit.md +1 -1
- package/src/modules/primitives/docs/commands/SetBaseCurrency.md +13 -23
- package/src/modules/primitives/docs/commands/SetReferenceUnit.md +1 -1
- package/src/modules/primitives/docs/features/currency-definitions.md +13 -14
- package/src/modules/primitives/docs/models/Currency.md +3 -4
- package/src/modules/primitives/docs/queries/ConvertAmount.md +2 -2
- package/src/modules/primitives/docs/queries/ConvertQuantity.md +2 -2
- package/src/modules/primitives/lib/errors.generated.ts +6 -1
- package/src/modules/primitives/lib/permissions.generated.ts +1 -1
- package/src/modules/primitives/lib/types.ts +6 -1
- package/src/modules/primitives/module.ts +1 -1
- package/src/modules/primitives/query/convertAmount.generated.ts +1 -1
- package/src/modules/primitives/query/convertAmount.test.ts +1 -1
- package/src/modules/primitives/query/convertAmount.ts +1 -1
- package/src/modules/primitives/query/convertQuantity.generated.ts +1 -1
- package/src/modules/primitives/query/convertQuantity.test.ts +1 -1
- package/src/modules/primitives/query/convertQuantity.ts +1 -1
- package/src/modules/primitives/query/getBaseCurrency.generated.ts +1 -1
- package/src/modules/primitives/query/getBaseCurrency.test.ts +1 -1
- package/src/modules/primitives/query/getBaseCurrency.ts +1 -1
- package/src/modules/primitives/query/getCurrency.generated.ts +1 -1
- package/src/modules/primitives/query/getCurrency.ts +1 -1
- package/src/modules/primitives/query/getUnit.generated.ts +1 -1
- package/src/modules/primitives/query/getUnit.ts +1 -1
- package/src/modules/primitives/query/getUoMCategory.generated.ts +1 -1
- package/src/modules/primitives/query/getUoMCategory.ts +1 -1
- package/src/modules/primitives/query/listUnitsByCategory.generated.ts +1 -1
- package/src/modules/primitives/query/listUnitsByCategory.ts +2 -2
- package/src/modules/product-management/README.md +1 -1
- package/src/modules/product-management/command/activateProduct.generated.ts +1 -1
- package/src/modules/product-management/command/activateProduct.ts +1 -1
- package/src/modules/product-management/command/assignProductToCategory.generated.ts +1 -1
- package/src/modules/product-management/command/assignProductToCategory.ts +1 -1
- package/src/modules/product-management/command/createProduct.generated.ts +1 -1
- package/src/modules/product-management/command/createProduct.test.ts +1 -1
- package/src/modules/product-management/command/createProduct.ts +1 -1
- package/src/modules/product-management/command/createProductAttribute.generated.ts +1 -1
- package/src/modules/product-management/command/createProductAttribute.ts +1 -1
- package/src/modules/product-management/command/createProductAttributeValue.generated.ts +1 -1
- package/src/modules/product-management/command/createProductAttributeValue.ts +1 -1
- package/src/modules/product-management/command/createProductCategory.generated.ts +1 -1
- package/src/modules/product-management/command/createProductCategory.test.ts +1 -1
- package/src/modules/product-management/command/createProductCategory.ts +1 -1
- package/src/modules/product-management/command/deactivateProduct.generated.ts +1 -1
- package/src/modules/product-management/command/deactivateProduct.ts +1 -1
- package/src/modules/product-management/command/deleteProduct.generated.ts +1 -1
- package/src/modules/product-management/command/deleteProduct.ts +1 -1
- package/src/modules/product-management/command/deleteProductAttribute.generated.ts +1 -1
- package/src/modules/product-management/command/deleteProductAttribute.ts +1 -1
- package/src/modules/product-management/command/deleteProductAttributeValue.generated.ts +1 -1
- package/src/modules/product-management/command/deleteProductAttributeValue.ts +1 -1
- package/src/modules/product-management/command/deleteProductCategory.generated.ts +1 -1
- package/src/modules/product-management/command/deleteProductCategory.ts +1 -1
- package/src/modules/product-management/command/generateVariants.generated.ts +1 -1
- package/src/modules/product-management/command/generateVariants.test.ts +1 -1
- package/src/modules/product-management/command/generateVariants.ts +1 -1
- package/src/modules/product-management/command/moveProductCategory.generated.ts +1 -1
- package/src/modules/product-management/command/moveProductCategory.test.ts +1 -1
- package/src/modules/product-management/command/moveProductCategory.ts +1 -1
- package/src/modules/product-management/command/reactivateProduct.generated.ts +1 -1
- package/src/modules/product-management/command/reactivateProduct.ts +1 -1
- package/src/modules/product-management/command/removeProductFromCategory.generated.ts +1 -1
- package/src/modules/product-management/command/removeProductFromCategory.ts +1 -1
- package/src/modules/product-management/command/setProductAttributeAssignment.generated.ts +1 -1
- package/src/modules/product-management/command/setProductAttributeAssignment.ts +1 -1
- package/src/modules/product-management/command/updateProduct.generated.ts +1 -1
- package/src/modules/product-management/command/updateProduct.test.ts +1 -1
- package/src/modules/product-management/command/updateProduct.ts +1 -1
- package/src/modules/product-management/command/updateProductAttribute.generated.ts +1 -1
- package/src/modules/product-management/command/updateProductAttribute.ts +1 -1
- package/src/modules/product-management/command/updateProductAttributeValue.generated.ts +1 -1
- package/src/modules/product-management/command/updateProductAttributeValue.ts +1 -1
- package/src/modules/product-management/command/updateProductCategory.generated.ts +1 -1
- package/src/modules/product-management/command/updateProductCategory.ts +1 -1
- package/src/modules/product-management/lib/errors.generated.ts +1 -1
- package/src/modules/product-management/lib/permissions.generated.ts +1 -1
- package/src/modules/product-management/lib/types.ts +6 -1
- package/src/modules/product-management/module.ts +1 -1
- package/src/modules/product-management/query/calculateCategoryDepth.generated.ts +1 -1
- package/src/modules/product-management/query/calculateCategoryDepth.ts +1 -1
- package/src/modules/product-management/query/detectCategoryCircularReference.generated.ts +1 -1
- package/src/modules/product-management/query/detectCategoryCircularReference.ts +1 -1
- package/src/modules/product-management/query/getProduct.generated.ts +1 -1
- package/src/modules/product-management/query/getProduct.ts +1 -1
- package/src/modules/product-management/query/getProductAttribute.generated.ts +1 -1
- package/src/modules/product-management/query/getProductAttribute.ts +1 -1
- package/src/modules/product-management/query/getProductAttributeAssignment.generated.ts +1 -1
- package/src/modules/product-management/query/getProductAttributeAssignment.ts +1 -1
- package/src/modules/product-management/query/getProductAttributeValue.generated.ts +1 -1
- package/src/modules/product-management/query/getProductAttributeValue.ts +1 -1
- package/src/modules/product-management/query/getProductCategory.generated.ts +1 -1
- package/src/modules/product-management/query/getProductCategory.ts +1 -1
- package/src/modules/product-management/query/getProductCategoryAssignment.generated.ts +1 -1
- package/src/modules/product-management/query/getProductCategoryAssignment.ts +1 -1
- package/src/modules/product-management/query/getProductVariant.generated.ts +1 -1
- package/src/modules/product-management/query/getProductVariant.ts +1 -1
- package/src/modules/product-management/query/listAttributeAssignmentsByAttribute.generated.ts +1 -1
- package/src/modules/product-management/query/listAttributeAssignmentsByAttribute.ts +1 -1
- package/src/modules/product-management/query/listCategoryAssignmentsByProduct.generated.ts +1 -1
- package/src/modules/product-management/query/listCategoryAssignmentsByProduct.ts +1 -1
- package/src/modules/product-management/query/listProductAttributeAssignments.generated.ts +1 -1
- package/src/modules/product-management/query/listProductAttributeAssignments.ts +1 -1
- package/src/modules/product-management/query/listProductAttributeValues.generated.ts +1 -1
- package/src/modules/product-management/query/listProductAttributeValues.ts +1 -1
- package/src/modules/product-management/query/listProductCategoryAssignments.generated.ts +1 -1
- package/src/modules/product-management/query/listProductCategoryAssignments.ts +1 -1
- package/src/modules/product-management/query/listProductCategoryChildren.generated.ts +1 -1
- package/src/modules/product-management/query/listProductCategoryChildren.ts +1 -1
- package/src/modules/product-management/query/listProductVariants.generated.ts +1 -1
- package/src/modules/product-management/query/listProductVariants.ts +1 -1
- package/src/modules/user-management/command/activateUser.generated.ts +1 -1
- package/src/modules/user-management/command/activateUser.ts +1 -1
- package/src/modules/user-management/command/assignPermissionToRole.generated.ts +1 -1
- package/src/modules/user-management/command/assignPermissionToRole.ts +1 -1
- package/src/modules/user-management/command/assignRoleToUser.generated.ts +1 -1
- package/src/modules/user-management/command/assignRoleToUser.ts +1 -1
- package/src/modules/user-management/command/createPermission.generated.ts +1 -1
- package/src/modules/user-management/command/createPermission.ts +1 -1
- package/src/modules/user-management/command/createRole.generated.ts +1 -1
- package/src/modules/user-management/command/createRole.ts +1 -1
- package/src/modules/user-management/command/createUser.generated.ts +1 -1
- package/src/modules/user-management/command/createUser.ts +1 -1
- package/src/modules/user-management/command/deactivateUser.generated.ts +1 -1
- package/src/modules/user-management/command/deactivateUser.ts +1 -1
- package/src/modules/user-management/command/reactivateUser.generated.ts +1 -1
- package/src/modules/user-management/command/reactivateUser.ts +1 -1
- package/src/modules/user-management/command/revokePermissionFromRole.generated.ts +1 -1
- package/src/modules/user-management/command/revokePermissionFromRole.ts +1 -1
- package/src/modules/user-management/command/revokeRoleFromUser.generated.ts +1 -1
- package/src/modules/user-management/command/revokeRoleFromUser.ts +1 -1
- package/src/modules/user-management/docs/commands/CreatePermission.md +3 -3
- package/src/modules/user-management/docs/commands/CreateRole.md +1 -1
- package/src/modules/user-management/docs/queries/ListRolePermissionsByRole.md +39 -0
- package/src/modules/user-management/docs/queries/ListUserRolesByUser.md +39 -0
- package/src/modules/user-management/generated/enums.ts +0 -15
- package/src/modules/user-management/generated/kysely-tailordb.ts +0 -11
- package/src/modules/user-management/lib/errors.generated.ts +1 -1
- package/src/modules/user-management/lib/permissions.generated.ts +1 -1
- package/src/modules/user-management/lib/types.ts +6 -1
- package/src/modules/user-management/module.ts +1 -1
- package/src/shared/createContext.ts +2 -1
- package/src/shared/defineQuery.ts +36 -1
- package/src/shared/requirePermission.ts +3 -3
- package/src/shared/types.ts +3 -0
- package/templates/scaffold/app/backend/package.json +4 -3
- package/templates/scaffold/app/frontend/eslint.config.js +12 -0
- package/templates/scaffold/app/frontend/package.json +10 -7
- package/templates/scaffold/app/frontend/src/hooks/use-toast.ts +30 -0
- package/templates/scaffold/app/frontend/src/pages/user-management/user/create/components/create-user-form.tsx +3 -2
- package/templates/scaffold/app/frontend/vite.config.ts +5 -5
- package/templates/scaffold/module/lib/types.ts +6 -1
- package/templates/scaffold/module/permissions.ts +1 -1
- package/src/commands/module/list.test.ts +0 -57
- package/src/commands/module/list.ts +0 -64
- package/templates/scaffold/module/lib/errors.ts +0 -1
- /package/src/modules/{accounting → audit/db}/.gitkeep +0 -0
- /package/src/modules/audit/{.gitkeep → executor/.gitkeep} +0 -0
- /package/src/modules/{coa-management → business-partner}/.gitkeep +0 -0
- /package/src/modules/{supplier-management → business-partner/command}/.gitkeep +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tailor-platform/erp-kit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
4
|
"description": "Opinionated ERP toolkit for building business applications on Tailor Platform",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"bin": {
|
|
@@ -35,12 +35,13 @@
|
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@tailor-platform/function-kysely-tailordb": "0.1.3",
|
|
37
37
|
"@tailor-platform/function-types": "0.8.2",
|
|
38
|
-
"@tailor-platform/sdk": "1.25.
|
|
38
|
+
"@tailor-platform/sdk": "1.25.2",
|
|
39
39
|
"@types/mdast": "^4.0.4",
|
|
40
40
|
"@types/node": "^25.1.0",
|
|
41
|
+
"@typescript-eslint/parser": "^8.57.0",
|
|
41
42
|
"eslint": "10.0.3",
|
|
42
43
|
"kysely": "0.28.11",
|
|
43
|
-
"tsdown": "0.21.
|
|
44
|
+
"tsdown": "0.21.3",
|
|
44
45
|
"typescript": "^5.7.3",
|
|
45
46
|
"vitest": "^4.0.0",
|
|
46
47
|
"@tailor-platform/eslint-config": "0.0.1"
|
|
@@ -48,7 +49,7 @@
|
|
|
48
49
|
"peerDependencies": {
|
|
49
50
|
"@tailor-platform/function-kysely-tailordb": "0.1.3",
|
|
50
51
|
"@tailor-platform/function-types": "0.8.2",
|
|
51
|
-
"@tailor-platform/sdk": "1.25.
|
|
52
|
+
"@tailor-platform/sdk": "1.25.2",
|
|
52
53
|
"kysely": "0.28.11"
|
|
53
54
|
},
|
|
54
55
|
"engines": {
|
|
@@ -10,7 +10,7 @@ Create Tier 1-2 documentation: Requirements, Actors, and Business Flows.
|
|
|
10
10
|
## Workflow Phases
|
|
11
11
|
|
|
12
12
|
```
|
|
13
|
-
GATHER → CLARIFY → CREATE → VALIDATE
|
|
13
|
+
GATHER → CLARIFY → CREATE → STORY EXTRACTION → VALIDATE
|
|
14
14
|
```
|
|
15
15
|
|
|
16
16
|
### Phase 1: Gather
|
|
@@ -26,15 +26,14 @@ Focus on "what" the application should do, not "how" it will be implemented.
|
|
|
26
26
|
|
|
27
27
|
### Phase 2: Clarify
|
|
28
28
|
|
|
29
|
-
Use AskUserQuestion to clarify undefined requirements
|
|
29
|
+
Use AskUserQuestion to clarify undefined requirements. Focus on business-level scope and workflows — not platform capabilities like authentication.
|
|
30
30
|
|
|
31
|
-
| Category
|
|
32
|
-
|
|
|
33
|
-
|
|
|
34
|
-
|
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
| Lifecycle | Create only / Full lifecycle (activate/deact)? |
|
|
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? |
|
|
38
37
|
|
|
39
38
|
Ask 3-4 questions at a time using multiSelect where appropriate.
|
|
40
39
|
|
|
@@ -62,7 +61,9 @@ erp-kit app generate doc business-flow {FLOW_NAME} -p {APP_ROOT}/{APP_NAME}
|
|
|
62
61
|
README.md ← Tier 1 (from app init)
|
|
63
62
|
docs/
|
|
64
63
|
actors/{actor-name}.md ← Tier 2 (from generate doc actors)
|
|
65
|
-
business-flow/{flow-name}/
|
|
64
|
+
business-flow/{flow-name}/
|
|
65
|
+
README.md ← Tier 2 (from generate doc business-flow)
|
|
66
|
+
story/{actor}--{story-name}.md ← Tier 2 (from Phase 3b story extraction)
|
|
66
67
|
```
|
|
67
68
|
|
|
68
69
|
**Schema constraints:** See [erp-kit-app-shared/references/schema-constraints.md](../erp-kit-app-shared/references/schema-constraints.md) for H1 heading rules, naming conventions, and requirements structure.
|
|
@@ -71,12 +72,37 @@ erp-kit app generate doc business-flow {FLOW_NAME} -p {APP_ROOT}/{APP_NAME}
|
|
|
71
72
|
|
|
72
73
|
**Business flow `## Stories` section:**
|
|
73
74
|
|
|
74
|
-
|
|
75
|
+
Use `- TBD` as a placeholder during flow creation. These will be replaced with actual story links in Phase 3b below.
|
|
76
|
+
|
|
77
|
+
### Phase 3b: Story Extraction
|
|
78
|
+
|
|
79
|
+
After creating business flows, extract and create story documentation.
|
|
80
|
+
|
|
81
|
+
1. **Collect** all business flow docs: glob `<APP_ROOT>/docs/business-flow/*/README.md`
|
|
82
|
+
2. **Dispatch story extraction agents** — one Agent per business flow (parallelize if possible). Each agent:
|
|
83
|
+
- Reads the prompt template from [references/story-extraction.md](references/story-extraction.md)
|
|
84
|
+
- Replace `{{APP_NAME}}` with the resolved app name
|
|
85
|
+
- Replace `{{ACTOR_DOCS}}` with the actor doc file paths
|
|
86
|
+
- Replace `{{BUSINESS_FLOW_DOCS}}` with ONLY the single business flow doc for that agent
|
|
87
|
+
- Dispatch the agent with the filled prompt
|
|
88
|
+
|
|
89
|
+
3. **Scaffold & populate** story docs from agent results:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# For each story identified
|
|
93
|
+
erp-kit app generate doc story <flow>/<actor>--<story> -p {APP_ROOT}/{APP_NAME}
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
4. **Link stories** in business flow READMEs: replace `- TBD` placeholders in each flow's `## Stories` section with actual links:
|
|
97
|
+
|
|
98
|
+
```markdown
|
|
99
|
+
- [Story Title](./story/<actor>--<story-name>.md)
|
|
100
|
+
```
|
|
75
101
|
|
|
76
102
|
### Phase 4: Validate
|
|
77
103
|
|
|
78
104
|
```bash
|
|
79
|
-
|
|
105
|
+
erp-kit app check -p {APP_ROOT}
|
|
80
106
|
```
|
|
81
107
|
|
|
82
108
|
See [schema-constraints.md](../erp-kit-app-shared/references/schema-constraints.md) for notes on expected "No matching files found" output.
|
|
@@ -88,6 +114,7 @@ See [schema-constraints.md](../erp-kit-app-shared/references/schema-constraints.
|
|
|
88
114
|
| `requirements.yml` | 1 | `README.md` |
|
|
89
115
|
| `actors.yml` | 2 | `docs/actors/<name>.md` |
|
|
90
116
|
| `business-flow.yml` | 2 | `docs/business-flow/<flow>/README.md` |
|
|
117
|
+
| `story.yml` | 2 | `docs/business-flow/<flow>/story/<actor>--<name>.md` |
|
|
91
118
|
|
|
92
119
|
## Next Step
|
|
93
120
|
|
package/skills/{erp-kit-app-3-plan → erp-kit-app-1-requirements}/references/story-extraction.md
RENAMED
|
@@ -51,7 +51,7 @@ For each story, extract:
|
|
|
51
51
|
|
|
52
52
|
For each story, determine:
|
|
53
53
|
|
|
54
|
-
- **Needs resolvers**: Story involves create/update/delete operations → mark as
|
|
54
|
+
- **Needs resolvers**: Story involves create/update/delete operations → mark as `TBD` for resolvers
|
|
55
55
|
- **Read-only**: Story only views/lists data → mark as `None` for resolvers
|
|
56
56
|
|
|
57
57
|
## Naming Convention
|
|
@@ -22,12 +22,13 @@ Define shared context for all agents:
|
|
|
22
22
|
- `APP_README`: `<APP_ROOT>/README.md`
|
|
23
23
|
- `BUSINESS_FLOW_DOCS`: glob `<APP_ROOT>/docs/business-flow/*/README.md`
|
|
24
24
|
- `ACTOR_DOCS`: glob `<APP_ROOT>/docs/actors/*.md`
|
|
25
|
+
- `STORY_DOCS`: glob `<APP_ROOT>/docs/business-flow/*/story/*.md`
|
|
25
26
|
|
|
26
27
|
Verify at least `APP_README` exists. If not, stop with: "No application README found at <APP_ROOT>. Run erp-kit-app-1-requirements first."
|
|
27
28
|
|
|
28
29
|
## Step 2: Dispatch Agents (parallelize if possible)
|
|
29
30
|
|
|
30
|
-
Launch
|
|
31
|
+
Launch 3 Agent tool calls in parallel — one per review concern.
|
|
31
32
|
Each agent receives: APP_NAME, relevant doc file paths.
|
|
32
33
|
Each agent returns: structured markdown per [references/requirements-report-format.md](references/requirements-report-format.md).
|
|
33
34
|
|
|
@@ -35,13 +36,15 @@ Each agent returns: structured markdown per [references/requirements-report-form
|
|
|
35
36
|
| ----- | ------------------------------------------------------------------------------------ | ------------------------------------------ |
|
|
36
37
|
| 1 | [references/best-practices-check.md](references/best-practices-check.md) | APP_README, ACTOR_DOCS, BUSINESS_FLOW_DOCS |
|
|
37
38
|
| 2 | [references/boundary-consistency-check.md](references/boundary-consistency-check.md) | APP_README, ACTOR_DOCS, BUSINESS_FLOW_DOCS |
|
|
39
|
+
| 3 | [references/story-quality-check.md](references/story-quality-check.md) | APP_README, ACTOR_DOCS, BUSINESS_FLOW_DOCS, STORY_DOCS |
|
|
38
40
|
|
|
39
41
|
For each agent:
|
|
40
42
|
|
|
41
43
|
1. Read the prompt template file
|
|
42
44
|
2. Replace `{{APP_NAME}}` with the resolved app name
|
|
43
45
|
3. Replace `{{APP_README}}`, `{{ACTOR_DOCS}}`, `{{BUSINESS_FLOW_DOCS}}` with the actual file paths
|
|
44
|
-
4.
|
|
46
|
+
4. Replace `{{STORY_DOCS}}` with the story doc file paths (agent 3 only)
|
|
47
|
+
5. Dispatch the agent with the filled prompt
|
|
45
48
|
|
|
46
49
|
## Step 3: Aggregate & Validate
|
|
47
50
|
|
|
@@ -52,7 +55,18 @@ After ALL agents return:
|
|
|
52
55
|
3. Merge all `recommendations[]` arrays into a single list
|
|
53
56
|
4. **Filter out** any recommendation that would violate `erp-kit app check` schema constraints (e.g., title-casing business flow H1 headings)
|
|
54
57
|
5. Calculate totals across all summaries
|
|
55
|
-
|
|
58
|
+
|
|
59
|
+
## Step 4: Priority Validation
|
|
60
|
+
|
|
61
|
+
Subagents tend to over-classify. Before rendering the report, re-evaluate every non-pass finding:
|
|
62
|
+
|
|
63
|
+
- **"Is this even this application's responsibility?"** — If the concern belongs to a module or is out of scope, drop it from the report
|
|
64
|
+
- **"Does this block proceeding to planning?"** → `critical`
|
|
65
|
+
- **"Will this force Tier 3-4 rework (stories, screens, resolvers)?"** → `high`
|
|
66
|
+
- **"Is this a quality improvement with no rework risk?"** → `medium`
|
|
67
|
+
- All no → `low`, regardless of subagent label
|
|
68
|
+
|
|
69
|
+
## Step 5: Render Report
|
|
56
70
|
|
|
57
71
|
## Report Format
|
|
58
72
|
|
|
@@ -82,14 +96,24 @@ Render the aggregated results as markdown:
|
|
|
82
96
|
|
|
83
97
|
---
|
|
84
98
|
|
|
85
|
-
### 3.
|
|
99
|
+
### 3. Story Quality
|
|
100
|
+
|
|
101
|
+
| Story/Flow | Check | Status | Detail |
|
|
102
|
+
| ---------- | ----- | ------ | ------ |
|
|
103
|
+
|
|
104
|
+
(Populated from agent 3 issues)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
### 4. Summary
|
|
86
109
|
|
|
87
110
|
| Aspect | Status | Details |
|
|
88
111
|
| ------------------------- | ------ | ----------------- |
|
|
89
112
|
| Best Practices | | X/Y checks passed |
|
|
90
113
|
| Documentation Consistency | | X/Y checks passed |
|
|
114
|
+
| Story Quality | | X/Y checks passed |
|
|
91
115
|
|
|
92
|
-
###
|
|
116
|
+
### 5. Recommendations
|
|
93
117
|
|
|
94
118
|
Numbered list of actionable fixes, grouped by priority:
|
|
95
119
|
|
|
@@ -11,6 +11,10 @@ Business flow docs: {{BUSINESS_FLOW_DOCS}}
|
|
|
11
11
|
|
|
12
12
|
Read [erp-kit-app-shared/references/schema-constraints.md](../../erp-kit-app-shared/references/schema-constraints.md) before evaluating. **Never recommend changes that violate the schema.**
|
|
13
13
|
|
|
14
|
+
## Tier 2 Scope
|
|
15
|
+
|
|
16
|
+
This review targets Tier 1-2 documentation only. Stories (`## Stories` section in business flows) are created in step 3 (`erp-kit-app-3-plan`). A `- TBD` placeholder in the Stories section is expected and correct at this stage — do **not** flag it as incomplete or missing.
|
|
17
|
+
|
|
14
18
|
## Instructions
|
|
15
19
|
|
|
16
20
|
1. Read the application README at the path above
|
|
@@ -11,6 +11,10 @@ Business flow docs: {{BUSINESS_FLOW_DOCS}}
|
|
|
11
11
|
|
|
12
12
|
Read [erp-kit-app-shared/references/schema-constraints.md](../../erp-kit-app-shared/references/schema-constraints.md) before evaluating. When checking `naming_consistency`, validate that H1 headings follow the schema rules — different doc types have different heading formats.
|
|
13
13
|
|
|
14
|
+
## Tier 2 Scope
|
|
15
|
+
|
|
16
|
+
This review targets Tier 1-2 documentation only. Stories (`## Stories` section in business flows) are created in step 3 (`erp-kit-app-3-plan`). A `- TBD` placeholder in the Stories section is expected and correct at this stage — do **not** flag it as a broken link, missing content, or incomplete documentation.
|
|
17
|
+
|
|
14
18
|
## Instructions
|
|
15
19
|
|
|
16
20
|
1. Read the application README at the path above
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Story Quality Check
|
|
2
|
+
|
|
3
|
+
## Context
|
|
4
|
+
|
|
5
|
+
App: {{APP_NAME}}
|
|
6
|
+
Actor docs: {{ACTOR_DOCS}}
|
|
7
|
+
Business flow docs: {{BUSINESS_FLOW_DOCS}}
|
|
8
|
+
Story docs: {{STORY_DOCS}}
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
1. Read ALL actor docs at the paths above
|
|
13
|
+
2. Read ALL business flow docs at the paths above
|
|
14
|
+
3. Read ALL story docs at the paths above
|
|
15
|
+
4. Validate story quality against the checks below
|
|
16
|
+
5. Return results per the report format at the bottom
|
|
17
|
+
|
|
18
|
+
## Checks
|
|
19
|
+
|
|
20
|
+
### Story-to-Flow Parity
|
|
21
|
+
|
|
22
|
+
For each business flow:
|
|
23
|
+
- Every flow must have at least one story
|
|
24
|
+
- Every story must map to exactly one flow (via its directory location)
|
|
25
|
+
- The `## Stories` section in each flow README must link to all stories in its `story/` directory
|
|
26
|
+
- No broken links in `## Stories` sections
|
|
27
|
+
|
|
28
|
+
### Naming Conventions
|
|
29
|
+
|
|
30
|
+
- Story filename must follow `<actor>--<story-name>.md` pattern (double-dash separator)
|
|
31
|
+
- Actor slug in filename must match an existing actor doc
|
|
32
|
+
- Story name portion must be kebab-case
|
|
33
|
+
|
|
34
|
+
### Content Completeness
|
|
35
|
+
|
|
36
|
+
For each story:
|
|
37
|
+
- Must have scenario patterns (non-empty)
|
|
38
|
+
- Must have preconditions and postconditions
|
|
39
|
+
- Must have screen references (can be TBD at this stage)
|
|
40
|
+
- Must have resolver classification (TBD for mutations, None for read-only)
|
|
41
|
+
|
|
42
|
+
### Actor Consistency
|
|
43
|
+
|
|
44
|
+
- Actor referenced in story filename must exist in `docs/actors/`
|
|
45
|
+
- Actor referenced in story content must match the filename actor
|
|
46
|
+
|
|
47
|
+
## Output Format
|
|
48
|
+
|
|
49
|
+
Return findings as structured markdown:
|
|
50
|
+
|
|
51
|
+
### Issues
|
|
52
|
+
|
|
53
|
+
For each issue found:
|
|
54
|
+
|
|
55
|
+
- **Check:** which check failed
|
|
56
|
+
- **Scope:** which file/story/flow is affected
|
|
57
|
+
- **Severity:** critical / high / medium / low
|
|
58
|
+
- **Detail:** what's wrong and how to fix it
|
|
59
|
+
|
|
60
|
+
### Summary
|
|
61
|
+
|
|
62
|
+
| Check | Passed | Failed | Total |
|
|
63
|
+
| ----- | ------ | ------ | ----- |
|
|
64
|
+
| Story-to-Flow Parity | | | |
|
|
65
|
+
| Naming Conventions | | | |
|
|
66
|
+
| Content Completeness | | | |
|
|
67
|
+
| Actor Consistency | | | |
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: erp-kit-app-3-plan
|
|
3
|
-
description: Create Tier 3-4 documentation (
|
|
3
|
+
description: Create Tier 3-4 documentation (screens, resolvers) by breaking down business flows and existing stories. Use after completing requirements review with erp-kit-app-2-requirements-review.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Business Flow Breakdown to Stories, Screens, and Resolvers
|
|
7
7
|
|
|
8
|
-
Convert Tier 2 business flows into Tier 3 (
|
|
8
|
+
Convert Tier 2 business flows and stories into Tier 3 (screens) and Tier 4 (resolvers) documentation using parallel extraction agents.
|
|
9
9
|
|
|
10
10
|
## When to Use
|
|
11
11
|
|
|
@@ -20,6 +20,7 @@ Tier 1-2 documentation must exist:
|
|
|
20
20
|
- `README.md` (requirements)
|
|
21
21
|
- `docs/actors/*.md` (actor definitions)
|
|
22
22
|
- `docs/business-flow/*/README.md` (business workflows)
|
|
23
|
+
- `docs/business-flow/<flow>/story/<actor>--<name>.md` (story definitions)
|
|
23
24
|
|
|
24
25
|
## Step 1: Setup
|
|
25
26
|
|
|
@@ -29,68 +30,75 @@ Define shared context for all agents:
|
|
|
29
30
|
- `APP_NAME`: basename of APP_ROOT
|
|
30
31
|
- `BUSINESS_FLOW_DOCS`: glob `<APP_ROOT>/docs/business-flow/*/README.md`
|
|
31
32
|
- `ACTOR_DOCS`: glob `<APP_ROOT>/docs/actors/*.md`
|
|
33
|
+
- `STORY_DOCS`: glob `<APP_ROOT>/docs/business-flow/*/story/*.md`
|
|
34
|
+
- `MODULE_OVERVIEW`: output of `erp-kit doc modules`
|
|
32
35
|
|
|
33
36
|
Verify at least `BUSINESS_FLOW_DOCS` is non-empty. If no business flow docs exist, stop with: "No business flow docs found under <APP_ROOT>/docs/. Run erp-kit-app-1-requirements first."
|
|
34
37
|
|
|
38
|
+
Verify at least `STORY_DOCS` is non-empty. If no story docs exist, stop with: "No story docs found. Run erp-kit-app-1-requirements first to create stories."
|
|
39
|
+
|
|
40
|
+
Collect module overview:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
erp-kit doc modules
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This returns each module's name, overview, command/query/model counts, and dependencies. Save the full output as `MODULE_OVERVIEW` — both agents receive it.
|
|
47
|
+
|
|
48
|
+
> **Sync barrier:** `MODULE_OVERVIEW` must be collected before dispatching agents.
|
|
49
|
+
|
|
35
50
|
## Step 2: Dispatch Agents (parallelize if possible)
|
|
36
51
|
|
|
37
|
-
|
|
38
|
-
|
|
52
|
+
For each business flow in BUSINESS_FLOW_DOCS, launch 2 Agent tool calls in parallel — one per extraction concern.
|
|
53
|
+
|
|
54
|
+
Each agent pair receives: APP_NAME, ACTOR_DOCS, the single business flow's STORY_DOCS, MODULE_OVERVIEW, and only that flow's BUSINESS_FLOW_DOC (singular).
|
|
39
55
|
|
|
40
|
-
| Agent | Prompt Template |
|
|
41
|
-
| ----- | ---------------------------------------------------------------------- |
|
|
42
|
-
|
|
|
43
|
-
|
|
|
44
|
-
| 3 | [references/resolver-extraction.md](references/resolver-extraction.md) | APP_NAME, ACTOR_DOCS, BUSINESS_FLOW_DOCS |
|
|
56
|
+
| Agent | Prompt Template |
|
|
57
|
+
| ----- | ---------------------------------------------------------------------- |
|
|
58
|
+
| A | [references/screen-extraction.md](references/screen-extraction.md) |
|
|
59
|
+
| B | [references/resolver-extraction.md](references/resolver-extraction.md) |
|
|
45
60
|
|
|
46
61
|
For each agent:
|
|
47
62
|
|
|
48
63
|
1. Read the prompt template file
|
|
49
64
|
2. Replace `{{APP_NAME}}` with the resolved app name
|
|
50
|
-
3. Replace `{{ACTOR_DOCS}}
|
|
51
|
-
4.
|
|
65
|
+
3. Replace `{{ACTOR_DOCS}}` with the actor doc file paths
|
|
66
|
+
4. Replace `{{BUSINESS_FLOW_DOCS}}` with ONLY the single business flow doc for this iteration
|
|
67
|
+
5. Replace `{{STORY_DOCS}}` with ONLY the stories under this flow's `story/` directory
|
|
68
|
+
6. Replace `{{MODULE_OVERVIEW}}` with the output from `erp-kit doc modules`
|
|
69
|
+
7. Dispatch the agent with the filled prompt
|
|
70
|
+
|
|
71
|
+
With N business flows, this produces N × 2 parallel agents.
|
|
52
72
|
|
|
53
73
|
## Step 3: Aggregate & Present Plan
|
|
54
74
|
|
|
55
75
|
After ALL agents return:
|
|
56
76
|
|
|
57
|
-
1. Collect extraction results from each agent
|
|
58
|
-
2.
|
|
59
|
-
|
|
60
|
-
-
|
|
77
|
+
1. Collect extraction results from each agent, grouped by business flow
|
|
78
|
+
2. **Deduplicate screens**: Screens referenced by multiple flows should appear once — merge field lists and story references
|
|
79
|
+
3. Present consolidated plan to user:
|
|
80
|
+
- Existing stories (from STORY_DOCS, for reference)
|
|
81
|
+
- Screens to create (deduplicated, with type, fields, actions)
|
|
61
82
|
- Resolvers to create (with operation type, module mapping)
|
|
62
|
-
|
|
83
|
+
## Step 4: Resolve Module Gaps
|
|
63
84
|
|
|
64
|
-
|
|
85
|
+
Step 2's resolver agent mapped resolvers to erp-kit modules using `MODULE_OVERVIEW` and flagged any operations that could not be mapped as module gaps.
|
|
65
86
|
|
|
66
|
-
|
|
87
|
+
If there are no gaps, proceed to Step 5.
|
|
67
88
|
|
|
68
|
-
|
|
69
|
-
ls packages/erp-kit/src/modules/
|
|
70
|
-
```
|
|
89
|
+
**If resolvers require functionality that no erp-kit module provides:**
|
|
71
90
|
|
|
72
|
-
|
|
91
|
+
1. Group the unmapped operations by domain to identify what custom modules are needed
|
|
92
|
+
2. Create each custom module using `erp-kit-module-1-requirements` skill
|
|
93
|
+
3. Return to this step after the custom modules are ready
|
|
73
94
|
|
|
74
|
-
|
|
75
|
-
ls packages/erp-kit/src/modules/<module-name>/docs/commands/
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**If modules don't exist:**
|
|
79
|
-
|
|
80
|
-
1. Identify needed modules — group resolver operations by domain
|
|
81
|
-
2. Create module docs first — use `erp-kit-module-1-requirements` skill
|
|
82
|
-
3. Return to this step after modules have documented commands
|
|
83
|
-
|
|
84
|
-
**Only reference existing module commands** in resolver documentation.
|
|
95
|
+
For resolvers that reference erp-kit modules, use `MODULE_OVERVIEW` as the source of truth. For resolvers that reference custom modules, use the custom module's own documentation.
|
|
85
96
|
|
|
86
97
|
## Step 5: Scaffold & Populate
|
|
87
98
|
|
|
88
|
-
|
|
99
|
+
Scaffold using `erp-kit` CLI:
|
|
89
100
|
|
|
90
101
|
```bash
|
|
91
|
-
# Tier 3: Stories
|
|
92
|
-
erp-kit app generate doc story <flow>/<actor>--<story> -p {APP_ROOT}/{APP_NAME}
|
|
93
|
-
|
|
94
102
|
# Tier 3: Screens
|
|
95
103
|
erp-kit app generate doc screen <screen-name> -p {APP_ROOT}/{APP_NAME}
|
|
96
104
|
|
|
@@ -100,12 +108,6 @@ erp-kit app generate doc resolver <resolver-name> -p {APP_ROOT}/{APP_NAME}
|
|
|
100
108
|
|
|
101
109
|
Fill scaffolded docs with details from agent extraction results.
|
|
102
110
|
|
|
103
|
-
**After creating stories**, replace `- TBD` placeholders in the `## Stories` section of each business flow README with actual links:
|
|
104
|
-
|
|
105
|
-
```markdown
|
|
106
|
-
- [Story Title](./story/<actor>--<story-name>.md)
|
|
107
|
-
```
|
|
108
|
-
|
|
109
111
|
**After creating resolvers**, replace `- TBD` placeholders in the `## Resolvers` section of each story with actual links:
|
|
110
112
|
|
|
111
113
|
```markdown
|
|
@@ -117,7 +119,7 @@ Read-only stories should have `None` under `## Resolvers`.
|
|
|
117
119
|
## Step 6: Validate
|
|
118
120
|
|
|
119
121
|
```bash
|
|
120
|
-
|
|
122
|
+
erp-kit app check -p {APP_ROOT}
|
|
121
123
|
```
|
|
122
124
|
|
|
123
125
|
## Naming Conventions
|
|
@@ -126,11 +128,10 @@ See [erp-kit-app-shared/references/naming-conventions.md](../erp-kit-app-shared/
|
|
|
126
128
|
|
|
127
129
|
## Schema Reference
|
|
128
130
|
|
|
129
|
-
| Schema | Tier | Output Path
|
|
130
|
-
| -------------- | ---- |
|
|
131
|
-
| `
|
|
132
|
-
| `
|
|
133
|
-
| `resolver.yml` | 4 | `docs/resolver/<name>.md` |
|
|
131
|
+
| Schema | Tier | Output Path |
|
|
132
|
+
| -------------- | ---- | ------------------------- |
|
|
133
|
+
| `screen.yml` | 3 | `docs/screen/<name>.md` |
|
|
134
|
+
| `resolver.yml` | 4 | `docs/resolver/<name>.md` |
|
|
134
135
|
|
|
135
136
|
## Common Patterns
|
|
136
137
|
|
|
@@ -144,7 +145,7 @@ See [erp-kit-app-shared/references/naming-conventions.md](../erp-kit-app-shared/
|
|
|
144
145
|
|
|
145
146
|
## Tips
|
|
146
147
|
|
|
147
|
-
-
|
|
148
|
+
- Stories are created in step 1 (erp-kit-app-1-requirements) — this step consumes them
|
|
148
149
|
- Stories should be completable in a single user session
|
|
149
150
|
- Screens can be shared across multiple stories
|
|
150
151
|
- Prefer built-in queries over custom resolvers for simple list/get operations
|
|
@@ -5,13 +5,27 @@
|
|
|
5
5
|
App: {{APP_NAME}}
|
|
6
6
|
Actor docs: {{ACTOR_DOCS}}
|
|
7
7
|
Business flow docs: {{BUSINESS_FLOW_DOCS}}
|
|
8
|
+
Story docs: {{STORY_DOCS}}
|
|
9
|
+
|
|
10
|
+
## Available Modules
|
|
11
|
+
|
|
12
|
+
The following modules are available in erp-kit. Use this to map resolvers to real module commands.
|
|
13
|
+
|
|
14
|
+
{{MODULE_OVERVIEW}}
|
|
15
|
+
|
|
16
|
+
To inspect a specific module's commands in detail, run:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
erp-kit doc module <module-name> command <command-name>
|
|
20
|
+
```
|
|
8
21
|
|
|
9
22
|
## Instructions
|
|
10
23
|
|
|
11
24
|
1. Read ALL actor docs at the paths above
|
|
12
25
|
2. Read ALL business flow docs at the paths above
|
|
13
|
-
3.
|
|
14
|
-
4.
|
|
26
|
+
3. Read ALL story docs at the paths above
|
|
27
|
+
4. Identify GraphQL resolvers needed for each business flow and story, using the module overview and `erp-kit doc module <name> command` for detail
|
|
28
|
+
5. Return results as a structured markdown report
|
|
15
29
|
|
|
16
30
|
## Extraction Rules
|
|
17
31
|
|
|
@@ -21,26 +35,13 @@ For each business flow step that modifies data:
|
|
|
21
35
|
|
|
22
36
|
1. Identify the operation type (create, update, delete, approve, etc.)
|
|
23
37
|
2. Map to a resolver name using camelCase action-verb convention
|
|
24
|
-
3. Identify the module command the resolver will call
|
|
38
|
+
3. Identify the module command the resolver will call. If no erp-kit module covers the domain, flag it as a module gap.
|
|
25
39
|
4. Extract inputs, outputs, and error scenarios
|
|
26
40
|
|
|
27
41
|
### Operation → Resolver Mapping
|
|
28
42
|
|
|
29
43
|
See [erp-kit-app-shared/references/resolver-classification.md](../../erp-kit-app-shared/references/resolver-classification.md) for the full operation → resolver mapping table and custom vs built-in classification.
|
|
30
44
|
|
|
31
|
-
### Module Command Mapping
|
|
32
|
-
|
|
33
|
-
For each resolver, identify which erp-kit module provides the command:
|
|
34
|
-
|
|
35
|
-
| Resolver Operation | Typical Module |
|
|
36
|
-
| ------------------ | --------------------- |
|
|
37
|
-
| User invite/roles | `user-management` |
|
|
38
|
-
| Supplier CRUD | `supplier-management` |
|
|
39
|
-
| Document handling | `document-management` |
|
|
40
|
-
| Task workflows | `task-management` |
|
|
41
|
-
| Item CRUD | `item-management` |
|
|
42
|
-
| Unit/currency | `primitives` |
|
|
43
|
-
|
|
44
45
|
### Resolver Content
|
|
45
46
|
|
|
46
47
|
For each resolver, extract:
|
|
@@ -78,12 +79,17 @@ For each resolver:
|
|
|
78
79
|
|
|
79
80
|
List entities that only need built-in list/get queries (no custom resolver needed).
|
|
80
81
|
|
|
81
|
-
### Module
|
|
82
|
+
### Module Gaps
|
|
83
|
+
|
|
84
|
+
List any operations that could not be mapped to an existing erp-kit module. These will require a custom module. For each gap:
|
|
82
85
|
|
|
83
|
-
|
|
86
|
+
- **Operation:** what the flow requires
|
|
87
|
+
- **Suggested custom module:** proposed module name and domain
|
|
88
|
+
- **Suggested command:** proposed command name
|
|
84
89
|
|
|
85
90
|
### Summary
|
|
86
91
|
|
|
87
92
|
- Total custom resolvers
|
|
88
93
|
- Total built-in queries
|
|
89
94
|
- Resolvers per module (table)
|
|
95
|
+
- Module gaps (if any)
|
|
@@ -5,13 +5,28 @@
|
|
|
5
5
|
App: {{APP_NAME}}
|
|
6
6
|
Actor docs: {{ACTOR_DOCS}}
|
|
7
7
|
Business flow docs: {{BUSINESS_FLOW_DOCS}}
|
|
8
|
+
Story docs: {{STORY_DOCS}}
|
|
9
|
+
|
|
10
|
+
## Available Modules
|
|
11
|
+
|
|
12
|
+
The following modules are available in erp-kit. Use this to understand which entities exist and what operations are available.
|
|
13
|
+
|
|
14
|
+
{{MODULE_OVERVIEW}}
|
|
15
|
+
|
|
16
|
+
To inspect a specific module's model (domain description, state transitions, invariants, commands), run:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
erp-kit doc module <module-name> model <model-name>
|
|
20
|
+
```
|
|
8
21
|
|
|
9
22
|
## Instructions
|
|
10
23
|
|
|
11
24
|
1. Read ALL actor docs at the paths above
|
|
12
25
|
2. Read ALL business flow docs at the paths above
|
|
13
|
-
3.
|
|
14
|
-
4.
|
|
26
|
+
3. Read ALL story docs at the paths above
|
|
27
|
+
4. Identify screens needed for each business flow and story
|
|
28
|
+
5. For screens that display or edit module entities, use `erp-kit doc module <name> model` to understand the entity's domain
|
|
29
|
+
6. Return results as a structured markdown report
|
|
15
30
|
|
|
16
31
|
## Extraction Rules
|
|
17
32
|
|
|
@@ -63,6 +78,7 @@ For each screen:
|
|
|
63
78
|
|
|
64
79
|
- **Screen:** `<screen-name>`
|
|
65
80
|
- **Type:** ListView / Form / DetailView
|
|
81
|
+
- **Module source:** which module's model provides the data (if applicable)
|
|
66
82
|
- **Fields/Columns:** bulleted list of fields with types
|
|
67
83
|
- **Actions:** bulleted list of actions
|
|
68
84
|
- **Referenced by stories:** which stories use this screen
|