@open-mercato/cli 0.6.8-develop.6893.1.7af3b3a72d → 0.6.8-develop.6897.1.586171ad21
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/dist/agentic/guides/module-facts.json +110 -110
- package/dist/agentic/guides/modules/ai_assistant.md +1 -1
- package/dist/agentic/guides/modules/api_docs.md +1 -1
- package/dist/agentic/guides/modules/api_keys.md +1 -1
- package/dist/agentic/guides/modules/attachments.md +1 -1
- package/dist/agentic/guides/modules/audit_logs.md +1 -1
- package/dist/agentic/guides/modules/auth.md +1 -1
- package/dist/agentic/guides/modules/business_rules.md +1 -1
- package/dist/agentic/guides/modules/catalog.md +1 -1
- package/dist/agentic/guides/modules/channel_gmail.md +1 -1
- package/dist/agentic/guides/modules/channel_imap.md +1 -1
- package/dist/agentic/guides/modules/checkout.md +1 -1
- package/dist/agentic/guides/modules/communication_channels.md +1 -1
- package/dist/agentic/guides/modules/configs.md +1 -1
- package/dist/agentic/guides/modules/content.md +1 -1
- package/dist/agentic/guides/modules/currencies.md +1 -1
- package/dist/agentic/guides/modules/customer_accounts.md +1 -1
- package/dist/agentic/guides/modules/customers.md +1 -1
- package/dist/agentic/guides/modules/dashboards.md +1 -1
- package/dist/agentic/guides/modules/data_sync.md +1 -1
- package/dist/agentic/guides/modules/design_system.md +1 -1
- package/dist/agentic/guides/modules/dictionaries.md +1 -1
- package/dist/agentic/guides/modules/directory.md +1 -1
- package/dist/agentic/guides/modules/entities.md +1 -1
- package/dist/agentic/guides/modules/events.md +1 -1
- package/dist/agentic/guides/modules/feature_toggles.md +1 -1
- package/dist/agentic/guides/modules/gateway_stripe.md +1 -1
- package/dist/agentic/guides/modules/generators.md +1 -1
- package/dist/agentic/guides/modules/inbox_ops.md +1 -1
- package/dist/agentic/guides/modules/integrations.md +1 -1
- package/dist/agentic/guides/modules/messages.md +1 -1
- package/dist/agentic/guides/modules/notifications.md +1 -1
- package/dist/agentic/guides/modules/onboarding.md +1 -1
- package/dist/agentic/guides/modules/payment_gateways.md +1 -1
- package/dist/agentic/guides/modules/perspectives.md +1 -1
- package/dist/agentic/guides/modules/planner.md +1 -1
- package/dist/agentic/guides/modules/portal.md +1 -1
- package/dist/agentic/guides/modules/progress.md +1 -1
- package/dist/agentic/guides/modules/query_index.md +1 -1
- package/dist/agentic/guides/modules/record_locks.md +1 -1
- package/dist/agentic/guides/modules/resources.md +1 -1
- package/dist/agentic/guides/modules/sales.md +1 -1
- package/dist/agentic/guides/modules/scheduler.md +1 -1
- package/dist/agentic/guides/modules/search.md +1 -1
- package/dist/agentic/guides/modules/security.md +1 -1
- package/dist/agentic/guides/modules/shipping_carriers.md +1 -1
- package/dist/agentic/guides/modules/sso.md +1 -1
- package/dist/agentic/guides/modules/staff.md +1 -1
- package/dist/agentic/guides/modules/storage_s3.md +1 -1
- package/dist/agentic/guides/modules/sync_akeneo.md +1 -1
- package/dist/agentic/guides/modules/sync_excel.md +1 -1
- package/dist/agentic/guides/modules/system_status_overlays.md +1 -1
- package/dist/agentic/guides/modules/translations.md +1 -1
- package/dist/agentic/guides/modules/webhooks.md +1 -1
- package/dist/agentic/guides/modules/wms.md +1 -1
- package/dist/agentic/guides/modules/workflows.md +1 -1
- package/dist/agentic/guides/upstream/manifest.json +1 -1
- package/dist/agentic/shared/ai/harness/README.md +2 -2
- package/dist/agentic/shared/ai/harness/RELEASE.md +4 -4
- package/dist/agentic/shared/ai/harness/cases.json +821 -0
- package/dist/agentic/shared/ai/harness/cases.schema.json +4 -4
- package/dist/agentic/shared/ai/harness/validators.json +1 -1
- package/package.json +6 -6
|
@@ -13676,5 +13676,826 @@
|
|
|
13676
13676
|
"OMH-026",
|
|
13677
13677
|
"OMH-027"
|
|
13678
13678
|
]
|
|
13679
|
+
},
|
|
13680
|
+
{
|
|
13681
|
+
"id": "OMH-204",
|
|
13682
|
+
"title": "Reconstruct who changed and who merely read a record without a bespoke history table",
|
|
13683
|
+
"family": "architecture",
|
|
13684
|
+
"mode": "analysis",
|
|
13685
|
+
"evaluationKind": "routing",
|
|
13686
|
+
"risk": "medium",
|
|
13687
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, a compliance reviewer must be able to answer, for any business record, who changed it and when, and separately who merely opened it. Staff should be able to review their own trail, while a compliance officer needs the whole tenant's, and a handful of mistaken edits each month have to be walked back rather than corrected by hand. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for reading one's own trail versus the entire tenant's, and identify the smallest relevant validation. Do not add your own history, revision, or activity table before establishing whether an installed module already owns this capability.",
|
|
13688
|
+
"tags": [
|
|
13689
|
+
"architecture",
|
|
13690
|
+
"module-facts",
|
|
13691
|
+
"reuse-installed",
|
|
13692
|
+
"audit-trail"
|
|
13693
|
+
],
|
|
13694
|
+
"owner": {
|
|
13695
|
+
"kind": "facts",
|
|
13696
|
+
"path": ".ai/guides/modules/audit_logs.md",
|
|
13697
|
+
"ruleIds": [
|
|
13698
|
+
"BC-01",
|
|
13699
|
+
"BC-04"
|
|
13700
|
+
]
|
|
13701
|
+
},
|
|
13702
|
+
"expectedRouter": {
|
|
13703
|
+
"required": [
|
|
13704
|
+
"architecture"
|
|
13705
|
+
],
|
|
13706
|
+
"allowedExtra": [
|
|
13707
|
+
"module-data",
|
|
13708
|
+
"umes",
|
|
13709
|
+
"framework-context",
|
|
13710
|
+
"debugging"
|
|
13711
|
+
]
|
|
13712
|
+
},
|
|
13713
|
+
"requiredSkills": [
|
|
13714
|
+
"om-help"
|
|
13715
|
+
],
|
|
13716
|
+
"context": {
|
|
13717
|
+
"required": [
|
|
13718
|
+
"AGENTS.md",
|
|
13719
|
+
".ai/guides/architecture.md",
|
|
13720
|
+
".ai/skills/om-help/SKILL.md",
|
|
13721
|
+
".ai/guides/modules/audit_logs.md"
|
|
13722
|
+
],
|
|
13723
|
+
"allowedExtra": [
|
|
13724
|
+
".ai/guides/contracts.md",
|
|
13725
|
+
".ai/guides/extensions.md",
|
|
13726
|
+
".ai/skills/om-system-extension/SKILL.md"
|
|
13727
|
+
],
|
|
13728
|
+
"warn": [
|
|
13729
|
+
"node_modules/@open-mercato/*/src/**"
|
|
13730
|
+
],
|
|
13731
|
+
"forbidden": [
|
|
13732
|
+
".env*",
|
|
13733
|
+
".git/**"
|
|
13734
|
+
]
|
|
13735
|
+
},
|
|
13736
|
+
"requiredDecisions": [
|
|
13737
|
+
"facts-first",
|
|
13738
|
+
"tenant-scope",
|
|
13739
|
+
"acl-features",
|
|
13740
|
+
"smallest-validation"
|
|
13741
|
+
],
|
|
13742
|
+
"forbiddenPatterns": [
|
|
13743
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
13744
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
13745
|
+
],
|
|
13746
|
+
"validators": [
|
|
13747
|
+
"catalog.schema",
|
|
13748
|
+
"owner.reference",
|
|
13749
|
+
"skills.reference",
|
|
13750
|
+
"router.contract",
|
|
13751
|
+
"context.budget",
|
|
13752
|
+
"context.forbidden",
|
|
13753
|
+
"patterns.forbidden"
|
|
13754
|
+
],
|
|
13755
|
+
"maxContextFiles": 8,
|
|
13756
|
+
"maxInitialContextBytes": 53248,
|
|
13757
|
+
"maxTotalContextBytes": 73728,
|
|
13758
|
+
"relatedCases": [
|
|
13759
|
+
"OMH-002",
|
|
13760
|
+
"OMH-194"
|
|
13761
|
+
]
|
|
13762
|
+
},
|
|
13763
|
+
{
|
|
13764
|
+
"id": "OMH-205",
|
|
13765
|
+
"title": "Let staff retune approval and routing logic without shipping a release",
|
|
13766
|
+
"family": "architecture",
|
|
13767
|
+
"mode": "analysis",
|
|
13768
|
+
"evaluationKind": "routing",
|
|
13769
|
+
"risk": "medium",
|
|
13770
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, the operations team wants to change the conditions that decide which orders need a manager's approval and which get routed to a priority queue, and today every such change is a code edit and a release. They want to author those conditions themselves, group them so a whole set can be switched on for one organization at a time, and see afterwards which condition actually fired on a given record. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for authoring conditions versus merely running them, and identify the smallest relevant validation. Do not build your own condition, rule, or automation engine before establishing whether an installed module already owns this capability.",
|
|
13771
|
+
"tags": [
|
|
13772
|
+
"architecture",
|
|
13773
|
+
"module-facts",
|
|
13774
|
+
"reuse-installed",
|
|
13775
|
+
"rule-authoring"
|
|
13776
|
+
],
|
|
13777
|
+
"owner": {
|
|
13778
|
+
"kind": "facts",
|
|
13779
|
+
"path": ".ai/guides/modules/business_rules.md",
|
|
13780
|
+
"ruleIds": [
|
|
13781
|
+
"BC-01",
|
|
13782
|
+
"BC-04"
|
|
13783
|
+
]
|
|
13784
|
+
},
|
|
13785
|
+
"expectedRouter": {
|
|
13786
|
+
"required": [
|
|
13787
|
+
"architecture"
|
|
13788
|
+
],
|
|
13789
|
+
"allowedExtra": [
|
|
13790
|
+
"module-data",
|
|
13791
|
+
"umes",
|
|
13792
|
+
"ai-workflow",
|
|
13793
|
+
"framework-context"
|
|
13794
|
+
]
|
|
13795
|
+
},
|
|
13796
|
+
"requiredSkills": [
|
|
13797
|
+
"om-help"
|
|
13798
|
+
],
|
|
13799
|
+
"context": {
|
|
13800
|
+
"required": [
|
|
13801
|
+
"AGENTS.md",
|
|
13802
|
+
".ai/guides/architecture.md",
|
|
13803
|
+
".ai/skills/om-help/SKILL.md",
|
|
13804
|
+
".ai/guides/modules/business_rules.md"
|
|
13805
|
+
],
|
|
13806
|
+
"allowedExtra": [
|
|
13807
|
+
".ai/guides/contracts.md",
|
|
13808
|
+
".ai/guides/extensions.md",
|
|
13809
|
+
".ai/skills/om-system-extension/SKILL.md"
|
|
13810
|
+
],
|
|
13811
|
+
"warn": [
|
|
13812
|
+
"node_modules/@open-mercato/*/src/**"
|
|
13813
|
+
],
|
|
13814
|
+
"forbidden": [
|
|
13815
|
+
".env*",
|
|
13816
|
+
".git/**"
|
|
13817
|
+
]
|
|
13818
|
+
},
|
|
13819
|
+
"requiredDecisions": [
|
|
13820
|
+
"facts-first",
|
|
13821
|
+
"tenant-scope",
|
|
13822
|
+
"acl-features",
|
|
13823
|
+
"smallest-validation"
|
|
13824
|
+
],
|
|
13825
|
+
"forbiddenPatterns": [
|
|
13826
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
13827
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
13828
|
+
],
|
|
13829
|
+
"validators": [
|
|
13830
|
+
"catalog.schema",
|
|
13831
|
+
"owner.reference",
|
|
13832
|
+
"skills.reference",
|
|
13833
|
+
"router.contract",
|
|
13834
|
+
"context.budget",
|
|
13835
|
+
"context.forbidden",
|
|
13836
|
+
"patterns.forbidden"
|
|
13837
|
+
],
|
|
13838
|
+
"maxContextFiles": 8,
|
|
13839
|
+
"maxInitialContextBytes": 53248,
|
|
13840
|
+
"maxTotalContextBytes": 86016,
|
|
13841
|
+
"relatedCases": [
|
|
13842
|
+
"OMH-002",
|
|
13843
|
+
"OMH-194"
|
|
13844
|
+
]
|
|
13845
|
+
},
|
|
13846
|
+
{
|
|
13847
|
+
"id": "OMH-206",
|
|
13848
|
+
"title": "Give each role its own landing screen of operational tiles",
|
|
13849
|
+
"family": "architecture",
|
|
13850
|
+
"mode": "analysis",
|
|
13851
|
+
"evaluationKind": "routing",
|
|
13852
|
+
"risk": "medium",
|
|
13853
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, warehouse leads, sales staff, and administrators all land on the same empty back-office home page. Each group wants a starting screen carrying the few counters and shortcuts that matter to them, an administrator wants to decide which tiles a role gets by default, and individuals want to rearrange their own without changing anyone else's. Decide the smallest safe design against what the installed modules already provide, say how another module contributes a tile to that screen, keep tenant and organization boundaries intact, state the access-control posture for viewing a screen versus assigning tiles to a role, and identify the smallest relevant validation. Do not model your own layout, tile, or home-screen tables before establishing whether an installed module already owns this capability.",
|
|
13854
|
+
"tags": [
|
|
13855
|
+
"architecture",
|
|
13856
|
+
"module-facts",
|
|
13857
|
+
"reuse-installed",
|
|
13858
|
+
"role-landing-screen"
|
|
13859
|
+
],
|
|
13860
|
+
"owner": {
|
|
13861
|
+
"kind": "facts",
|
|
13862
|
+
"path": ".ai/guides/modules/dashboards.md",
|
|
13863
|
+
"ruleIds": [
|
|
13864
|
+
"BC-01",
|
|
13865
|
+
"BC-04"
|
|
13866
|
+
]
|
|
13867
|
+
},
|
|
13868
|
+
"expectedRouter": {
|
|
13869
|
+
"required": [
|
|
13870
|
+
"architecture"
|
|
13871
|
+
],
|
|
13872
|
+
"allowedExtra": [
|
|
13873
|
+
"backend-ui",
|
|
13874
|
+
"module-data",
|
|
13875
|
+
"umes",
|
|
13876
|
+
"framework-context"
|
|
13877
|
+
]
|
|
13878
|
+
},
|
|
13879
|
+
"requiredSkills": [
|
|
13880
|
+
"om-help"
|
|
13881
|
+
],
|
|
13882
|
+
"context": {
|
|
13883
|
+
"required": [
|
|
13884
|
+
"AGENTS.md",
|
|
13885
|
+
".ai/guides/architecture.md",
|
|
13886
|
+
".ai/skills/om-help/SKILL.md",
|
|
13887
|
+
".ai/guides/modules/dashboards.md"
|
|
13888
|
+
],
|
|
13889
|
+
"allowedExtra": [
|
|
13890
|
+
".ai/guides/backend-ui.md",
|
|
13891
|
+
".ai/guides/extensions.md",
|
|
13892
|
+
".ai/skills/om-system-extension/SKILL.md",
|
|
13893
|
+
".ai/guides/modules/perspectives.md"
|
|
13894
|
+
],
|
|
13895
|
+
"warn": [
|
|
13896
|
+
"node_modules/@open-mercato/*/src/**"
|
|
13897
|
+
],
|
|
13898
|
+
"forbidden": [
|
|
13899
|
+
".env*",
|
|
13900
|
+
".git/**"
|
|
13901
|
+
]
|
|
13902
|
+
},
|
|
13903
|
+
"requiredDecisions": [
|
|
13904
|
+
"facts-first",
|
|
13905
|
+
"tenant-scope",
|
|
13906
|
+
"acl-features",
|
|
13907
|
+
"smallest-validation"
|
|
13908
|
+
],
|
|
13909
|
+
"forbiddenPatterns": [
|
|
13910
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
13911
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
13912
|
+
],
|
|
13913
|
+
"validators": [
|
|
13914
|
+
"catalog.schema",
|
|
13915
|
+
"owner.reference",
|
|
13916
|
+
"skills.reference",
|
|
13917
|
+
"router.contract",
|
|
13918
|
+
"context.budget",
|
|
13919
|
+
"context.forbidden",
|
|
13920
|
+
"patterns.forbidden"
|
|
13921
|
+
],
|
|
13922
|
+
"maxContextFiles": 8,
|
|
13923
|
+
"maxInitialContextBytes": 53248,
|
|
13924
|
+
"maxTotalContextBytes": 94208,
|
|
13925
|
+
"relatedCases": [
|
|
13926
|
+
"OMH-002",
|
|
13927
|
+
"OMH-194"
|
|
13928
|
+
]
|
|
13929
|
+
},
|
|
13930
|
+
{
|
|
13931
|
+
"id": "OMH-207",
|
|
13932
|
+
"title": "Model branches and depots without inventing a second organization tree",
|
|
13933
|
+
"family": "architecture",
|
|
13934
|
+
"mode": "analysis",
|
|
13935
|
+
"evaluationKind": "routing",
|
|
13936
|
+
"risk": "medium",
|
|
13937
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, the business runs three depots and two sales branches, and every order, price list, and staff assignment belongs to exactly one of them. Head office staff need to work across all of them and switch between them, while depot staff must only ever see their own. A future franchise partner will need the same structure kept entirely separate from this one. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for viewing this structure versus changing it, and identify the smallest relevant validation. Do not model your own branch, site, depot, or company tables before establishing whether an installed module already owns this capability.",
|
|
13938
|
+
"tags": [
|
|
13939
|
+
"architecture",
|
|
13940
|
+
"module-facts",
|
|
13941
|
+
"reuse-installed",
|
|
13942
|
+
"organization-structure"
|
|
13943
|
+
],
|
|
13944
|
+
"owner": {
|
|
13945
|
+
"kind": "facts",
|
|
13946
|
+
"path": ".ai/guides/modules/directory.md",
|
|
13947
|
+
"ruleIds": [
|
|
13948
|
+
"BC-01",
|
|
13949
|
+
"BC-04"
|
|
13950
|
+
]
|
|
13951
|
+
},
|
|
13952
|
+
"expectedRouter": {
|
|
13953
|
+
"required": [
|
|
13954
|
+
"architecture"
|
|
13955
|
+
],
|
|
13956
|
+
"allowedExtra": [
|
|
13957
|
+
"module-data",
|
|
13958
|
+
"umes",
|
|
13959
|
+
"framework-context",
|
|
13960
|
+
"backend-ui"
|
|
13961
|
+
]
|
|
13962
|
+
},
|
|
13963
|
+
"requiredSkills": [
|
|
13964
|
+
"om-help"
|
|
13965
|
+
],
|
|
13966
|
+
"context": {
|
|
13967
|
+
"required": [
|
|
13968
|
+
"AGENTS.md",
|
|
13969
|
+
".ai/guides/architecture.md",
|
|
13970
|
+
".ai/skills/om-help/SKILL.md",
|
|
13971
|
+
".ai/guides/modules/directory.md"
|
|
13972
|
+
],
|
|
13973
|
+
"allowedExtra": [
|
|
13974
|
+
".ai/guides/contracts.md",
|
|
13975
|
+
".ai/skills/om-system-extension/SKILL.md"
|
|
13976
|
+
],
|
|
13977
|
+
"warn": [
|
|
13978
|
+
"node_modules/@open-mercato/*/src/**"
|
|
13979
|
+
],
|
|
13980
|
+
"forbidden": [
|
|
13981
|
+
".env*",
|
|
13982
|
+
".git/**"
|
|
13983
|
+
]
|
|
13984
|
+
},
|
|
13985
|
+
"requiredDecisions": [
|
|
13986
|
+
"facts-first",
|
|
13987
|
+
"tenant-scope",
|
|
13988
|
+
"acl-features",
|
|
13989
|
+
"smallest-validation"
|
|
13990
|
+
],
|
|
13991
|
+
"forbiddenPatterns": [
|
|
13992
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
13993
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
13994
|
+
],
|
|
13995
|
+
"validators": [
|
|
13996
|
+
"catalog.schema",
|
|
13997
|
+
"owner.reference",
|
|
13998
|
+
"skills.reference",
|
|
13999
|
+
"router.contract",
|
|
14000
|
+
"context.budget",
|
|
14001
|
+
"context.forbidden",
|
|
14002
|
+
"patterns.forbidden"
|
|
14003
|
+
],
|
|
14004
|
+
"maxContextFiles": 7,
|
|
14005
|
+
"maxInitialContextBytes": 40960,
|
|
14006
|
+
"maxTotalContextBytes": 69632,
|
|
14007
|
+
"relatedCases": [
|
|
14008
|
+
"OMH-002",
|
|
14009
|
+
"OMH-194"
|
|
14010
|
+
]
|
|
14011
|
+
},
|
|
14012
|
+
{
|
|
14013
|
+
"id": "OMH-208",
|
|
14014
|
+
"title": "Let administrators add their own fields and record types after go-live",
|
|
14015
|
+
"family": "architecture",
|
|
14016
|
+
"mode": "analysis",
|
|
14017
|
+
"evaluationKind": "routing",
|
|
14018
|
+
"risk": "medium",
|
|
14019
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, each customer of this business wants to track a couple of attributes nobody anticipated - a haulier reference on an order, a site survey score on a customer - and one of them wants a small record type of its own that no shipped module covers. Administrators want to add these themselves after go-live, filter and sort lists by them, and have one of them hold data that must be stored encrypted. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for defining these versus filling them in, and identify the smallest relevant validation. Do not design your own attribute, key-value, or dynamic-record tables before establishing whether an installed module already owns this capability.",
|
|
14020
|
+
"tags": [
|
|
14021
|
+
"architecture",
|
|
14022
|
+
"module-facts",
|
|
14023
|
+
"reuse-installed",
|
|
14024
|
+
"user-defined-fields"
|
|
14025
|
+
],
|
|
14026
|
+
"owner": {
|
|
14027
|
+
"kind": "facts",
|
|
14028
|
+
"path": ".ai/guides/modules/entities.md",
|
|
14029
|
+
"ruleIds": [
|
|
14030
|
+
"BC-01",
|
|
14031
|
+
"BC-04"
|
|
14032
|
+
]
|
|
14033
|
+
},
|
|
14034
|
+
"expectedRouter": {
|
|
14035
|
+
"required": [
|
|
14036
|
+
"umes"
|
|
14037
|
+
],
|
|
14038
|
+
"allowedExtra": [
|
|
14039
|
+
"architecture",
|
|
14040
|
+
"module-data",
|
|
14041
|
+
"backend-ui",
|
|
14042
|
+
"framework-context"
|
|
14043
|
+
]
|
|
14044
|
+
},
|
|
14045
|
+
"requiredSkills": [],
|
|
14046
|
+
"context": {
|
|
14047
|
+
"required": [
|
|
14048
|
+
"AGENTS.md",
|
|
14049
|
+
".ai/guides/extensions.md",
|
|
14050
|
+
".ai/skills/om-system-extension/SKILL.md",
|
|
14051
|
+
".ai/guides/modules/entities.md"
|
|
14052
|
+
],
|
|
14053
|
+
"allowedExtra": [
|
|
14054
|
+
".ai/guides/contracts.md",
|
|
14055
|
+
".ai/guides/backend-ui.md",
|
|
14056
|
+
".ai/skills/om-data-model-design/SKILL.md",
|
|
14057
|
+
".ai/skills/om-backend-ui-design/SKILL.md",
|
|
14058
|
+
".ai/guides/modules/query_index.md"
|
|
14059
|
+
],
|
|
14060
|
+
"warn": [
|
|
14061
|
+
"node_modules/@open-mercato/*/src/**"
|
|
14062
|
+
],
|
|
14063
|
+
"forbidden": [
|
|
14064
|
+
".env*",
|
|
14065
|
+
".git/**"
|
|
14066
|
+
]
|
|
14067
|
+
},
|
|
14068
|
+
"requiredDecisions": [
|
|
14069
|
+
"facts-first",
|
|
14070
|
+
"tenant-scope",
|
|
14071
|
+
"acl-features",
|
|
14072
|
+
"smallest-validation"
|
|
14073
|
+
],
|
|
14074
|
+
"forbiddenPatterns": [
|
|
14075
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
14076
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
14077
|
+
],
|
|
14078
|
+
"validators": [
|
|
14079
|
+
"catalog.schema",
|
|
14080
|
+
"owner.reference",
|
|
14081
|
+
"skills.reference",
|
|
14082
|
+
"router.contract",
|
|
14083
|
+
"context.budget",
|
|
14084
|
+
"context.forbidden",
|
|
14085
|
+
"patterns.forbidden"
|
|
14086
|
+
],
|
|
14087
|
+
"maxContextFiles": 9,
|
|
14088
|
+
"maxInitialContextBytes": 57344,
|
|
14089
|
+
"maxTotalContextBytes": 106496,
|
|
14090
|
+
"relatedCases": [
|
|
14091
|
+
"OMH-002",
|
|
14092
|
+
"OMH-194"
|
|
14093
|
+
]
|
|
14094
|
+
},
|
|
14095
|
+
{
|
|
14096
|
+
"id": "OMH-209",
|
|
14097
|
+
"title": "Turn forwarded supplier email into a proposal a human approves",
|
|
14098
|
+
"family": "architecture",
|
|
14099
|
+
"mode": "analysis",
|
|
14100
|
+
"evaluationKind": "routing",
|
|
14101
|
+
"risk": "medium",
|
|
14102
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, back-office staff forward supplier and customer emails into a shared mailbox and then retype what those emails ask for into the system. They want the forwarded message read for them and turned into a concrete suggested action that a person reviews and approves before anything is written, with the mismatches between the email and the existing record called out, and a reply sent back from inside the application. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for reviewing a suggestion versus approving it, and identify the smallest relevant validation. Do not design your own inbound-email, extraction, or approval-queue tables before establishing whether an installed module already owns this capability.",
|
|
14103
|
+
"tags": [
|
|
14104
|
+
"architecture",
|
|
14105
|
+
"module-facts",
|
|
14106
|
+
"reuse-installed",
|
|
14107
|
+
"email-intake"
|
|
14108
|
+
],
|
|
14109
|
+
"owner": {
|
|
14110
|
+
"kind": "facts",
|
|
14111
|
+
"path": ".ai/guides/modules/inbox_ops.md",
|
|
14112
|
+
"ruleIds": [
|
|
14113
|
+
"BC-01",
|
|
14114
|
+
"BC-04"
|
|
14115
|
+
]
|
|
14116
|
+
},
|
|
14117
|
+
"expectedRouter": {
|
|
14118
|
+
"required": [
|
|
14119
|
+
"architecture"
|
|
14120
|
+
],
|
|
14121
|
+
"allowedExtra": [
|
|
14122
|
+
"ai-workflow",
|
|
14123
|
+
"module-data",
|
|
14124
|
+
"integration",
|
|
14125
|
+
"framework-context"
|
|
14126
|
+
]
|
|
14127
|
+
},
|
|
14128
|
+
"requiredSkills": [
|
|
14129
|
+
"om-help"
|
|
14130
|
+
],
|
|
14131
|
+
"context": {
|
|
14132
|
+
"required": [
|
|
14133
|
+
"AGENTS.md",
|
|
14134
|
+
".ai/guides/architecture.md",
|
|
14135
|
+
".ai/skills/om-help/SKILL.md",
|
|
14136
|
+
".ai/guides/modules/inbox_ops.md"
|
|
14137
|
+
],
|
|
14138
|
+
"allowedExtra": [
|
|
14139
|
+
".ai/guides/ai-workflows.md",
|
|
14140
|
+
".ai/guides/integrations.md"
|
|
14141
|
+
],
|
|
14142
|
+
"warn": [
|
|
14143
|
+
"node_modules/@open-mercato/*/src/**"
|
|
14144
|
+
],
|
|
14145
|
+
"forbidden": [
|
|
14146
|
+
".env*",
|
|
14147
|
+
".git/**"
|
|
14148
|
+
]
|
|
14149
|
+
},
|
|
14150
|
+
"requiredDecisions": [
|
|
14151
|
+
"facts-first",
|
|
14152
|
+
"tenant-scope",
|
|
14153
|
+
"acl-features",
|
|
14154
|
+
"smallest-validation"
|
|
14155
|
+
],
|
|
14156
|
+
"forbiddenPatterns": [
|
|
14157
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
14158
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
14159
|
+
],
|
|
14160
|
+
"validators": [
|
|
14161
|
+
"catalog.schema",
|
|
14162
|
+
"owner.reference",
|
|
14163
|
+
"skills.reference",
|
|
14164
|
+
"router.contract",
|
|
14165
|
+
"context.budget",
|
|
14166
|
+
"context.forbidden",
|
|
14167
|
+
"patterns.forbidden"
|
|
14168
|
+
],
|
|
14169
|
+
"maxContextFiles": 7,
|
|
14170
|
+
"maxInitialContextBytes": 40960,
|
|
14171
|
+
"maxTotalContextBytes": 94208,
|
|
14172
|
+
"relatedCases": [
|
|
14173
|
+
"OMH-002",
|
|
14174
|
+
"OMH-194"
|
|
14175
|
+
]
|
|
14176
|
+
},
|
|
14177
|
+
{
|
|
14178
|
+
"id": "OMH-210",
|
|
14179
|
+
"title": "Give staff an in-app thread with attachments instead of a private notes table",
|
|
14180
|
+
"family": "architecture",
|
|
14181
|
+
"mode": "analysis",
|
|
14182
|
+
"evaluationKind": "routing",
|
|
14183
|
+
"risk": "medium",
|
|
14184
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, staff currently discuss individual orders over external email, so the context is lost to anyone who joins later. They want the conversation to live against the record itself, carry file attachments, reach a named group of recipients, be forwarded to an external address when someone outside needs it, and let a recipient confirm they have acted on it. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for reading a thread versus composing or attaching to one, and identify the smallest relevant validation. Do not model your own message, thread, note, or recipient tables before establishing whether an installed module already owns this capability.",
|
|
14185
|
+
"tags": [
|
|
14186
|
+
"architecture",
|
|
14187
|
+
"module-facts",
|
|
14188
|
+
"reuse-installed",
|
|
14189
|
+
"internal-messaging"
|
|
14190
|
+
],
|
|
14191
|
+
"owner": {
|
|
14192
|
+
"kind": "facts",
|
|
14193
|
+
"path": ".ai/guides/modules/messages.md",
|
|
14194
|
+
"ruleIds": [
|
|
14195
|
+
"BC-01",
|
|
14196
|
+
"BC-04"
|
|
14197
|
+
]
|
|
14198
|
+
},
|
|
14199
|
+
"expectedRouter": {
|
|
14200
|
+
"required": [
|
|
14201
|
+
"architecture"
|
|
14202
|
+
],
|
|
14203
|
+
"allowedExtra": [
|
|
14204
|
+
"module-data",
|
|
14205
|
+
"backend-ui",
|
|
14206
|
+
"umes",
|
|
14207
|
+
"framework-context"
|
|
14208
|
+
]
|
|
14209
|
+
},
|
|
14210
|
+
"requiredSkills": [
|
|
14211
|
+
"om-help"
|
|
14212
|
+
],
|
|
14213
|
+
"context": {
|
|
14214
|
+
"required": [
|
|
14215
|
+
"AGENTS.md",
|
|
14216
|
+
".ai/guides/architecture.md",
|
|
14217
|
+
".ai/skills/om-help/SKILL.md",
|
|
14218
|
+
".ai/guides/modules/messages.md"
|
|
14219
|
+
],
|
|
14220
|
+
"allowedExtra": [
|
|
14221
|
+
".ai/guides/contracts.md",
|
|
14222
|
+
".ai/guides/modules/notifications.md",
|
|
14223
|
+
".ai/guides/modules/attachments.md"
|
|
14224
|
+
],
|
|
14225
|
+
"warn": [
|
|
14226
|
+
"node_modules/@open-mercato/*/src/**"
|
|
14227
|
+
],
|
|
14228
|
+
"forbidden": [
|
|
14229
|
+
".env*",
|
|
14230
|
+
".git/**"
|
|
14231
|
+
]
|
|
14232
|
+
},
|
|
14233
|
+
"requiredDecisions": [
|
|
14234
|
+
"facts-first",
|
|
14235
|
+
"tenant-scope",
|
|
14236
|
+
"acl-features",
|
|
14237
|
+
"smallest-validation"
|
|
14238
|
+
],
|
|
14239
|
+
"forbiddenPatterns": [
|
|
14240
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
14241
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
14242
|
+
],
|
|
14243
|
+
"validators": [
|
|
14244
|
+
"catalog.schema",
|
|
14245
|
+
"owner.reference",
|
|
14246
|
+
"skills.reference",
|
|
14247
|
+
"router.contract",
|
|
14248
|
+
"context.budget",
|
|
14249
|
+
"context.forbidden",
|
|
14250
|
+
"patterns.forbidden"
|
|
14251
|
+
],
|
|
14252
|
+
"maxContextFiles": 6,
|
|
14253
|
+
"maxInitialContextBytes": 36864,
|
|
14254
|
+
"maxTotalContextBytes": 118784,
|
|
14255
|
+
"relatedCases": [
|
|
14256
|
+
"OMH-002",
|
|
14257
|
+
"OMH-194"
|
|
14258
|
+
]
|
|
14259
|
+
},
|
|
14260
|
+
{
|
|
14261
|
+
"id": "OMH-211",
|
|
14262
|
+
"title": "Let a new customer request their own workspace without a second signup flow",
|
|
14263
|
+
"family": "architecture",
|
|
14264
|
+
"mode": "analysis",
|
|
14265
|
+
"evaluationKind": "routing",
|
|
14266
|
+
"risk": "medium",
|
|
14267
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, every new client workspace is created by an administrator by hand from a form filled in over the phone. The business wants prospects to request their own workspace from a public page, confirm they control the email address they gave, and wait in a reviewable queue until someone accepts or rejects the request. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for submitting a request versus verifying and accepting one, and identify the smallest relevant validation. Do not build your own signup, registration, or workspace-request tables before establishing whether an installed module already owns this capability.",
|
|
14268
|
+
"tags": [
|
|
14269
|
+
"architecture",
|
|
14270
|
+
"module-facts",
|
|
14271
|
+
"reuse-installed",
|
|
14272
|
+
"self-service-signup"
|
|
14273
|
+
],
|
|
14274
|
+
"owner": {
|
|
14275
|
+
"kind": "facts",
|
|
14276
|
+
"path": ".ai/guides/modules/onboarding.md",
|
|
14277
|
+
"ruleIds": [
|
|
14278
|
+
"BC-01",
|
|
14279
|
+
"BC-04"
|
|
14280
|
+
]
|
|
14281
|
+
},
|
|
14282
|
+
"expectedRouter": {
|
|
14283
|
+
"required": [
|
|
14284
|
+
"architecture"
|
|
14285
|
+
],
|
|
14286
|
+
"allowedExtra": [
|
|
14287
|
+
"module-data",
|
|
14288
|
+
"umes",
|
|
14289
|
+
"backend-ui",
|
|
14290
|
+
"framework-context"
|
|
14291
|
+
]
|
|
14292
|
+
},
|
|
14293
|
+
"requiredSkills": [],
|
|
14294
|
+
"context": {
|
|
14295
|
+
"required": [
|
|
14296
|
+
"AGENTS.md",
|
|
14297
|
+
".ai/guides/architecture.md",
|
|
14298
|
+
".ai/guides/modules/onboarding.md"
|
|
14299
|
+
],
|
|
14300
|
+
"allowedExtra": [
|
|
14301
|
+
".ai/guides/contracts.md",
|
|
14302
|
+
".ai/guides/modules/directory.md"
|
|
14303
|
+
],
|
|
14304
|
+
"warn": [
|
|
14305
|
+
"node_modules/@open-mercato/*/src/**"
|
|
14306
|
+
],
|
|
14307
|
+
"forbidden": [
|
|
14308
|
+
".env*",
|
|
14309
|
+
".git/**"
|
|
14310
|
+
]
|
|
14311
|
+
},
|
|
14312
|
+
"requiredDecisions": [
|
|
14313
|
+
"facts-first",
|
|
14314
|
+
"tenant-scope",
|
|
14315
|
+
"acl-features",
|
|
14316
|
+
"smallest-validation"
|
|
14317
|
+
],
|
|
14318
|
+
"forbiddenPatterns": [
|
|
14319
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
14320
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
14321
|
+
],
|
|
14322
|
+
"validators": [
|
|
14323
|
+
"catalog.schema",
|
|
14324
|
+
"owner.reference",
|
|
14325
|
+
"skills.reference",
|
|
14326
|
+
"router.contract",
|
|
14327
|
+
"context.budget",
|
|
14328
|
+
"context.forbidden",
|
|
14329
|
+
"patterns.forbidden"
|
|
14330
|
+
],
|
|
14331
|
+
"maxContextFiles": 5,
|
|
14332
|
+
"maxInitialContextBytes": 32768,
|
|
14333
|
+
"maxTotalContextBytes": 61440,
|
|
14334
|
+
"relatedCases": [
|
|
14335
|
+
"OMH-002",
|
|
14336
|
+
"OMH-194"
|
|
14337
|
+
]
|
|
14338
|
+
},
|
|
14339
|
+
{
|
|
14340
|
+
"id": "OMH-212",
|
|
14341
|
+
"title": "Express when staff are actually available without a private schedule table",
|
|
14342
|
+
"family": "architecture",
|
|
14343
|
+
"mode": "analysis",
|
|
14344
|
+
"evaluationKind": "routing",
|
|
14345
|
+
"risk": "medium",
|
|
14346
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, jobs are being booked onto staff who are part-time, on holiday, or already committed elsewhere, because nothing in the system knows when each person is actually free. The team wants recurring weekly patterns plus one-off exceptions, wants a single pattern shared by everyone on the same shift instead of retyped per person, and wants other parts of the application to be able to ask the same question. Before proposing any schema, establish whether an installed module already owns this capability and name it, or state positively that none does. Then decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for viewing availability versus changing it, and identify the smallest relevant validation. Do not model your own availability, shift, or working-hours tables, and do not scaffold a new module, before that check is done.",
|
|
14347
|
+
"tags": [
|
|
14348
|
+
"architecture",
|
|
14349
|
+
"module-facts",
|
|
14350
|
+
"reuse-installed",
|
|
14351
|
+
"staff-availability"
|
|
14352
|
+
],
|
|
14353
|
+
"owner": {
|
|
14354
|
+
"kind": "facts",
|
|
14355
|
+
"path": ".ai/guides/modules/planner.md",
|
|
14356
|
+
"ruleIds": [
|
|
14357
|
+
"BC-01",
|
|
14358
|
+
"BC-04"
|
|
14359
|
+
]
|
|
14360
|
+
},
|
|
14361
|
+
"expectedRouter": {
|
|
14362
|
+
"required": [
|
|
14363
|
+
"architecture"
|
|
14364
|
+
],
|
|
14365
|
+
"allowedExtra": [
|
|
14366
|
+
"module-data",
|
|
14367
|
+
"umes",
|
|
14368
|
+
"framework-context",
|
|
14369
|
+
"backend-ui"
|
|
14370
|
+
]
|
|
14371
|
+
},
|
|
14372
|
+
"requiredSkills": [],
|
|
14373
|
+
"context": {
|
|
14374
|
+
"required": [
|
|
14375
|
+
"AGENTS.md",
|
|
14376
|
+
".ai/guides/architecture.md",
|
|
14377
|
+
".ai/guides/modules/planner.md"
|
|
14378
|
+
],
|
|
14379
|
+
"allowedExtra": [
|
|
14380
|
+
".ai/guides/contracts.md",
|
|
14381
|
+
".ai/skills/om-module-scaffold/SKILL.md",
|
|
14382
|
+
".ai/skills/om-data-model-design/SKILL.md"
|
|
14383
|
+
],
|
|
14384
|
+
"warn": [
|
|
14385
|
+
"node_modules/@open-mercato/*/src/**"
|
|
14386
|
+
],
|
|
14387
|
+
"forbidden": [
|
|
14388
|
+
".env*",
|
|
14389
|
+
".git/**"
|
|
14390
|
+
]
|
|
14391
|
+
},
|
|
14392
|
+
"requiredDecisions": [
|
|
14393
|
+
"facts-first",
|
|
14394
|
+
"tenant-scope",
|
|
14395
|
+
"acl-features",
|
|
14396
|
+
"smallest-validation"
|
|
14397
|
+
],
|
|
14398
|
+
"forbiddenPatterns": [
|
|
14399
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
14400
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
14401
|
+
],
|
|
14402
|
+
"validators": [
|
|
14403
|
+
"catalog.schema",
|
|
14404
|
+
"owner.reference",
|
|
14405
|
+
"skills.reference",
|
|
14406
|
+
"router.contract",
|
|
14407
|
+
"context.budget",
|
|
14408
|
+
"context.forbidden",
|
|
14409
|
+
"patterns.forbidden"
|
|
14410
|
+
],
|
|
14411
|
+
"maxContextFiles": 7,
|
|
14412
|
+
"maxInitialContextBytes": 40960,
|
|
14413
|
+
"maxTotalContextBytes": 77824,
|
|
14414
|
+
"relatedCases": [
|
|
14415
|
+
"OMH-002",
|
|
14416
|
+
"OMH-194"
|
|
14417
|
+
]
|
|
14418
|
+
},
|
|
14419
|
+
{
|
|
14420
|
+
"id": "OMH-213",
|
|
14421
|
+
"title": "Serve product and category names in each customer's language without duplicate columns",
|
|
14422
|
+
"family": "architecture",
|
|
14423
|
+
"mode": "analysis",
|
|
14424
|
+
"evaluationKind": "routing",
|
|
14425
|
+
"risk": "medium",
|
|
14426
|
+
"prompt": "In a freshly scaffolded standalone Open Mercato app, the catalogue is maintained in one language, but the business now sells into three and needs product names, category names, and a few descriptive fields to come back in the reader's language, falling back to the original where no wording exists yet. Staff want to supply the wording themselves per record and per language, and administrators want to control which languages are offered at all. Decide the smallest safe design against what the installed modules already provide, keep tenant and organization boundaries intact, state the access-control posture for supplying wording versus managing which languages exist, and identify the smallest relevant validation. Do not add per-language columns or your own translation tables before establishing whether an installed module already owns this capability.",
|
|
14427
|
+
"tags": [
|
|
14428
|
+
"architecture",
|
|
14429
|
+
"module-facts",
|
|
14430
|
+
"reuse-installed",
|
|
14431
|
+
"entity-translation"
|
|
14432
|
+
],
|
|
14433
|
+
"owner": {
|
|
14434
|
+
"kind": "facts",
|
|
14435
|
+
"path": ".ai/guides/modules/translations.md",
|
|
14436
|
+
"ruleIds": [
|
|
14437
|
+
"BC-01",
|
|
14438
|
+
"BC-04"
|
|
14439
|
+
]
|
|
14440
|
+
},
|
|
14441
|
+
"expectedRouter": {
|
|
14442
|
+
"required": [
|
|
14443
|
+
"architecture"
|
|
14444
|
+
],
|
|
14445
|
+
"allowedExtra": [
|
|
14446
|
+
"module-data",
|
|
14447
|
+
"umes",
|
|
14448
|
+
"framework-context",
|
|
14449
|
+
"backend-ui"
|
|
14450
|
+
]
|
|
14451
|
+
},
|
|
14452
|
+
"requiredSkills": [
|
|
14453
|
+
"om-help"
|
|
14454
|
+
],
|
|
14455
|
+
"context": {
|
|
14456
|
+
"required": [
|
|
14457
|
+
"AGENTS.md",
|
|
14458
|
+
".ai/guides/architecture.md",
|
|
14459
|
+
".ai/skills/om-help/SKILL.md",
|
|
14460
|
+
".ai/guides/modules/translations.md"
|
|
14461
|
+
],
|
|
14462
|
+
"allowedExtra": [
|
|
14463
|
+
".ai/guides/contracts.md",
|
|
14464
|
+
".ai/guides/extensions.md"
|
|
14465
|
+
],
|
|
14466
|
+
"warn": [
|
|
14467
|
+
"node_modules/@open-mercato/*/src/**"
|
|
14468
|
+
],
|
|
14469
|
+
"forbidden": [
|
|
14470
|
+
".env*",
|
|
14471
|
+
".git/**"
|
|
14472
|
+
]
|
|
14473
|
+
},
|
|
14474
|
+
"requiredDecisions": [
|
|
14475
|
+
"facts-first",
|
|
14476
|
+
"tenant-scope",
|
|
14477
|
+
"acl-features",
|
|
14478
|
+
"smallest-validation"
|
|
14479
|
+
],
|
|
14480
|
+
"forbiddenPatterns": [
|
|
14481
|
+
"node_modules.{0,40}(?:write|edit|patch)",
|
|
14482
|
+
"(?:tenant|organization).{0,30}(?:unscoped|scope optional)"
|
|
14483
|
+
],
|
|
14484
|
+
"validators": [
|
|
14485
|
+
"catalog.schema",
|
|
14486
|
+
"owner.reference",
|
|
14487
|
+
"skills.reference",
|
|
14488
|
+
"router.contract",
|
|
14489
|
+
"context.budget",
|
|
14490
|
+
"context.forbidden",
|
|
14491
|
+
"patterns.forbidden"
|
|
14492
|
+
],
|
|
14493
|
+
"maxContextFiles": 7,
|
|
14494
|
+
"maxInitialContextBytes": 49152,
|
|
14495
|
+
"maxTotalContextBytes": 65536,
|
|
14496
|
+
"relatedCases": [
|
|
14497
|
+
"OMH-002",
|
|
14498
|
+
"OMH-194"
|
|
14499
|
+
]
|
|
13679
14500
|
}
|
|
13680
14501
|
]
|