@thanbir-tamim/enterprise-project-intelligence-agent 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/CHANGELOG.md +23 -2
  2. package/README.md +302 -46
  3. package/assets/figures/feasibility-scoring-engine.png +0 -0
  4. package/assets/figures/hero-architecture.png +0 -0
  5. package/assets/figures/skills-interaction-map.png +0 -0
  6. package/docs/INSTALLATION.md +6 -6
  7. package/docs/SUPPORTED_FORMATS.md +4 -4
  8. package/examples/synthetic-inventory-system/ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md +4 -4
  9. package/examples/synthetic-inventory-system/generated-docs/INVENTORY_SUMMARY.md +17 -0
  10. package/examples/synthetic-inventory-system/generated-docs/evidence-index.json +78 -0
  11. package/examples/synthetic-inventory-system/generated-docs/inventory.json +26 -0
  12. package/examples/synthetic-inventory-system/presentation/DEMO_DECK.md +69 -55
  13. package/examples/synthetic-inventory-system/presentation/demo-deck.json +194 -16
  14. package/package.json +2 -1
  15. package/scripts/cli.mjs +20 -14
  16. package/scripts/lib/skills.mjs +1 -1
  17. package/scripts/release-audit.mjs +73 -70
  18. package/skills/corporate-presentation-generator/SKILL.md +49 -23
  19. package/skills/corporate-presentation-generator/scripts/outline-to-deck-json.mjs +77 -0
  20. package/skills/documentation-quality-auditor/SKILL.md +28 -21
  21. package/skills/documentation-quality-auditor/references/audit-checks.md +15 -8
  22. package/skills/documentation-quality-auditor/scripts/audit-docs.mjs +192 -32
  23. package/skills/engineering-knowledge-transfer/SKILL.md +1 -5
  24. package/skills/enterprise-ai-integration-planner/SKILL.md +13 -15
  25. package/skills/enterprise-ai-integration-planner/references/feasibility-scoring.md +26 -5
  26. package/skills/enterprise-ai-integration-planner/scripts/score-opportunity.mjs +32 -15
  27. package/skills/presentation-compliance-validator/SKILL.md +15 -15
  28. package/skills/presentation-compliance-validator/references/rule-schema.md +67 -10
  29. package/skills/presentation-compliance-validator/scripts/validate-deck.mjs +48 -11
  30. package/skills/project-documentation-discovery/SKILL.md +25 -8
  31. package/skills/project-documentation-discovery/references/format-matrix.md +4 -4
  32. package/skills/project-documentation-discovery/scripts/inventory.mjs +174 -100
  33. package/skills/project-documentation-discovery/scripts/secrets.mjs +99 -0
  34. package/skills/project-knowledge-assistant/SKILL.md +1 -7
  35. package/skills/software-change-impact-analyzer/SKILL.md +15 -11
  36. package/skills/software-reverse-engineering/SKILL.md +14 -10
  37. package/skills/software-reverse-engineering/references/system-map-schema.md +27 -0
  38. package/skills/technical-document-generator/SKILL.md +6 -8
  39. package/skills/technical-document-generator/scripts/render-markdown-to-html.mjs +76 -66
@@ -1,58 +1,55 @@
1
1
  # Enterprise Software: Architecture Assessment and AI Integration Strategy
2
- ### (Synthetic demonstration deck — Synthetic Inventory Platform)
2
+ Footer: Synthetic Inventory Platform · demonstration deck · slide {n}
3
3
 
4
4
  > All data, modules, and metrics below are fictional, created solely to demonstrate
5
5
  > `corporate-presentation-generator` and `presentation-compliance-validator`. No real
6
- > organization's data is used.
6
+ > organization's data is used. Machine-checkable version: `demo-deck.json` (generated with
7
+ > `skills/corporate-presentation-generator/scripts/outline-to-deck-json.mjs`).
7
8
 
8
9
  ---
9
10
 
10
11
  ## Slide 1 — Title
11
- **Enterprise Software: Architecture Assessment and AI Integration Strategy**
12
- Synthetic Inventory Platform · Demonstration Deck · v0.1
12
+ - **Enterprise Software: Architecture Assessment and AI Integration Strategy**
13
+ - Synthetic Inventory Platform · demonstration deck · v0.1 (fictional system)
13
14
 
14
- Speaker notes: Introduce the fictional "Synthetic Inventory Platform" and the purpose of this deck:
15
- to demonstrate an evidence-backed architecture + AI integration review end to end.
15
+ Notes: Introduce the fictional Synthetic Inventory Platform and the purpose of the deck — an evidence-backed architecture and AI-integration review, end to end. Everything shown is synthetic.
16
16
 
17
17
  ---
18
18
 
19
19
  ## Slide 2 — Executive Summary
20
- - Reviewed five fictional modules: Catalog, Stock Ledger, Purchase Orders, Receiving, Reporting.
21
- - Identified 3 candidate AI opportunities; recommended AI for 1, deterministic automation for 1, and
22
- "fix data first" for 1 [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md].
23
- - No blocking security findings for the recommended pilot; one blocker identified and resolved by
24
- recommending a prerequisite change instead of proceeding directly to AI.
20
+ - Reviewed five fictional modules: Catalog, Stock Ledger, Purchase Orders, Receiving, Reporting [source: source-docs/overview.md#2-modules]
21
+ - Three candidate opportunities: one AI candidate, one deterministic automation, one "fix the data first" [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md]
22
+ - One blocker found and handled by recommending a prerequisite change instead of AI [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md#opp-003--change-history-explanation-for-purchase-orders]
25
23
 
26
- Speaker notes: This is the one-slide summary; all figures reference the opportunity matrix, not
27
- invented numbers.
24
+ Notes: One-slide summary. Every statement references the opportunity matrix; no figures are invented.
28
25
 
29
26
  ---
30
27
 
31
28
  ## Slide 3 — Current-State Architecture
32
- - Modules: Catalog, Stock Ledger, Purchase Orders, Receiving, Reporting
33
- [source: source-docs/overview.md#2-modules].
34
- - Receiving today is fully manual data entry against an open Purchase Order
35
- [source: source-docs/receiving-workflow.md#2-steps].
29
+ - Modules: Catalog, Stock Ledger, Purchase Orders, Receiving, Reporting [source: source-docs/overview.md#2-modules]
30
+ - Receiving is fully manual data entry against an open Purchase Order [source: source-docs/receiving-workflow.md#2-steps]
31
+ - Diagram: Associate → Receiving UI → Stock Ledger; supervisor review on discrepancies (documented-only, not code-verified)
36
32
 
37
- Speaker notes: Diagram omitted in this text-only demo deck; see
38
- `software-reverse-engineering` diagram notation for how a real engagement would render this.
33
+ Notes: Architecture is reconstructed from documentation only (no code in this demo), so every element is tagged documented-only per software-reverse-engineering.
39
34
 
40
35
  ---
41
36
 
42
37
  ## Slide 4 — Example Business Workflow: Receiving
43
- 1. Associate scans shipment against open PO.
44
- 2. Associate manually enters received quantities.
45
- 3. Stock Ledger updates.
46
- 4. Discrepancies flagged for supervisor review.
47
- [source: source-docs/receiving-workflow.md#2-steps]
38
+ 1. Associate scans the shipment against an open PO [source: source-docs/receiving-workflow.md#2-steps]
39
+ 2. Associate manually enters received quantities
40
+ 3. Stock Ledger updates per received line
41
+ 4. Discrepancies are flagged for supervisor review
42
+
43
+ Notes: Walk through the four documented steps; step 2 is the manual pain point that drives OPP-001.
48
44
 
49
45
  ---
50
46
 
51
47
  ## Slide 5 — Engineering Pain Points
52
- - Manual packing-slip re-keying causes stock mismatches.
53
- - Reorder decisions rely on a manually read weekly CSV report.
54
- - PO change history is not consistently recorded, costing support time.
55
- [source: source-docs/overview.md#3-known-pain-points-fictional-for-demonstration-only]
48
+ - Manual packing-slip re-keying causes stock mismatches [source: source-docs/overview.md#3-known-pain-points-fictional-for-demonstration-only]
49
+ - Reorder decisions rely on a manually read weekly CSV report
50
+ - Purchase Order change history is not consistently recorded
51
+
52
+ Notes: All three pain points are stated in the synthetic overview document; none are measured.
56
53
 
57
54
  ---
58
55
 
@@ -60,70 +57,87 @@ Speaker notes: Diagram omitted in this text-only demo deck; see
60
57
  | ID | Opportunity | Recommendation |
61
58
  |---|---|---|
62
59
  | OPP-001 | Packing-slip extraction assistance | rework-required (data readiness) |
63
- | OPP-002 | Reorder alerting | Use non-AI scheduled rule — no AI needed |
60
+ | OPP-002 | Reorder alerting | Non-AI scheduled rule — no AI needed |
64
61
  | OPP-003 | PO change-history explanation | rework-required (access-control blocker) |
65
62
 
66
- Full detail: `examples/synthetic-inventory-system/ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md`.
63
+ Notes: Source is ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md. OPP-002 shows the planner recommending conventional automation over AI.
67
64
 
68
65
  ---
69
66
 
70
67
  ## Slide 7 — Prioritized AI Use Case: OPP-001
71
- - Weighted feasibility score: 3.45 (reproducible via `score-opportunity.mjs`).
72
- - Non-AI alternative considered: supplier EDI/CSV import — recommended to evaluate first.
73
- - Proposed as the first pilot only after a data-readiness gap (labeled training/eval samples) is
74
- closed.
68
+ - Weighted feasibility score: 3.45, band rework-required (illustrative inputs) [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md#reproducible-score-for-opp-001]
69
+ - Non-AI alternative considered first: supplier EDI/CSV import
70
+ - Pilot only after the data-readiness gap (labeled sample slips) is closed
71
+
72
+ Notes: The score is reproducible with scripts/score-opportunity.mjs; the inputs are illustrative, not measured.
75
73
 
76
74
  ---
77
75
 
78
76
  ## Slide 8 — Proposed Reference Architecture (if OPP-001 proceeds)
79
- - Entry point: new "suggested receipt" step before existing manual entry.
80
- - Pattern: asynchronous extraction service, human-in-the-loop confirmation before Stock Ledger write.
81
- - No vector database or agent framework proposed — not justified by this opportunity's scope
82
- [source: enterprise-ai-integration-planner/references/architecture-alternatives.md].
77
+ - Entry point: a new "suggested receipt" step before the existing manual entry
78
+ - Asynchronous extraction with human confirmation before any Stock Ledger write
79
+ - No vector database or agent framework — not justified by this scope (toolkit reference: architecture-alternatives.md)
80
+
81
+ Notes: The simplest architecture that satisfies the requirement; each component is tied to a stated need.
83
82
 
84
83
  ---
85
84
 
86
85
  ## Slide 9 — Security and Governance
87
- - Associate must confirm/edit extracted quantities before they post (no autonomous stock writes).
88
- - Audit log of original image, extracted value, and confirmed value.
89
- - Rollback: feature flag reverts to fully manual entry instantly.
86
+ - Associate must confirm or edit extracted quantities before they post (no autonomous writes)
87
+ - Audit log of image, extracted value, and confirmed value
88
+ - Feature flag reverts instantly to fully manual entry (toolkit reference: security-patterns.md)
89
+
90
+ Notes: Controls follow the security-pattern checklist: human approval, audit logging, rollback.
90
91
 
91
92
  ---
92
93
 
93
94
  ## Slide 10 — Feasibility and Dependencies
94
- - Dependency: a labeled sample of packing slips for evaluation (not yet available in this fictional
95
- scenario).
96
- - Dependency: supplier EDI feasibility study (may obsolete the AI approach entirely).
95
+ - Dependency: a labeled sample of packing slips for evaluation (not yet available in this scenario)
96
+ - Dependency: supplier EDI feasibility study, which may make the AI approach unnecessary [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md#opp-001--packing-slip-extraction-assistance]
97
+
98
+ Notes: Both dependencies must be resolved before a proof of concept starts.
97
99
 
98
100
  ---
99
101
 
100
102
  ## Slide 11 — Pilot Design
101
- - Scope: one warehouse, opt-in associates, 4-week window.
102
- - Baseline to measure before pilot: average manual entry time per receipt, current discrepancy rate.
103
+ - Scope: one warehouse, opt-in associates, a 4-week window (illustrative proposal)
104
+ - Baseline to measure first: manual entry time per receipt and current discrepancy rate
105
+
106
+ Notes: Scope values are proposals to be agreed with stakeholders, not commitments; no baseline numbers exist yet.
103
107
 
104
108
  ---
105
109
 
106
110
  ## Slide 12 — Evaluation Criteria
107
- - Extraction confirmation-edit rate (lower is better; target to be set after baseline).
108
- - Time-to-complete receipt vs. baseline.
109
- - Zero unauthorized data exposure incidents (hard requirement, not a target to trade off).
111
+ - Confirmation-edit rate (target set only after the baseline is measured)
112
+ - Time to complete a receipt versus baseline
113
+ - Zero unauthorized data exposure incidents — a hard requirement (toolkit reference: adoption-roadmap.md)
114
+
115
+ Notes: Metrics come from the evaluation framework; no target is stated until a baseline exists.
110
116
 
111
117
  ---
112
118
 
113
119
  ## Slide 13 — Implementation Roadmap
114
- Discovery/governance → PoC with sample slips → controlled pilot (one warehouse) → production
115
- readiness → measured expansion. See `enterprise-ai-integration-planner/references/adoption-roadmap.md`.
120
+ 1. Discovery and governance
121
+ 2. Proof of concept with sample slips
122
+ 3. Controlled pilot in one warehouse
123
+ 4. Production readiness, then measured expansion (toolkit reference: adoption-roadmap.md)
124
+
125
+ Notes: Five phases, each with exit conditions; the pilot is selected from scoring output, not popularity.
116
126
 
117
127
  ---
118
128
 
119
129
  ## Slide 14 — Risks and Decisions
120
130
  | Risk | Mitigation |
121
131
  |---|---|
122
- | Low data readiness | Collect labeled sample before PoC |
123
- | Associate over-trust in suggested values | Require explicit confirmation step, log overrides |
132
+ | Low data readiness | Collect a labeled sample before the PoC |
133
+ | Associates over-trust suggested values | Require explicit confirmation; log overrides |
134
+
135
+ Notes: Decision requested: approve the discovery phase and the labeled-sample collection.
124
136
 
125
137
  ---
126
138
 
127
139
  ## Slide 15 — References and Assumptions
128
- - All content sourced from `examples/synthetic-inventory-system/source-docs/` (fictional).
129
- - Assumption: supplier EDI feasibility not yet evaluated in this fictional scenario.
140
+ - Sources: examples/synthetic-inventory-system/source-docs/ and ai-opportunity-matrix/ (fictional)
141
+ - Assumption: supplier EDI feasibility has not been evaluated in this scenario
142
+
143
+ Notes: Closing slide; all content is synthetic and generated for demonstration purposes.
@@ -1,20 +1,198 @@
1
1
  {
2
- "sections": ["Title", "Executive Summary", "Current-State Architecture", "Example Business Workflow", "Engineering Pain Points", "AI Opportunity Matrix", "Prioritized AI Use Case", "Proposed Reference Architecture", "Security and Governance", "Feasibility and Dependencies", "Pilot Design", "Evaluation Criteria", "Implementation Roadmap", "Risks and Decisions", "References and Assumptions"],
2
+ "sections": [
3
+ "Title",
4
+ "Executive Summary",
5
+ "Current-State Architecture",
6
+ "Example Business Workflow: Receiving",
7
+ "Engineering Pain Points",
8
+ "AI Opportunity Matrix (summary)",
9
+ "Prioritized AI Use Case: OPP-001",
10
+ "Proposed Reference Architecture (if OPP-001 proceeds)",
11
+ "Security and Governance",
12
+ "Feasibility and Dependencies",
13
+ "Pilot Design",
14
+ "Evaluation Criteria",
15
+ "Implementation Roadmap",
16
+ "Risks and Decisions",
17
+ "References and Assumptions"
18
+ ],
3
19
  "slides": [
4
- { "title": "Title", "bullets": [], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "intro" },
5
- { "title": "Executive Summary", "bullets": ["3 opportunities", "1 recommended for AI", "0 unresolved blockers for the recommended pilot"], "hasFooterOrPageNumber": true, "hasNumericClaim": true, "citationsPresent": true, "notes": "summary" },
6
- { "title": "Current-State Architecture", "bullets": ["5 modules", "Receiving is manual"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "arch" },
7
- { "title": "Example Business Workflow: Receiving", "bullets": ["scan", "manual entry", "ledger update", "discrepancy flag"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "workflow" },
8
- { "title": "Engineering Pain Points", "bullets": ["manual re-keying", "manual CSV review", "no change history"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "pain points" },
9
- { "title": "AI Opportunity Matrix", "bullets": ["OPP-001", "OPP-002", "OPP-003"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "matrix" },
10
- { "title": "Prioritized AI Use Case: OPP-001", "bullets": ["weighted score 3.45", "non-AI alternative considered", "data gap identified"], "hasFooterOrPageNumber": true, "hasNumericClaim": true, "citationsPresent": true, "notes": "opp1" },
11
- { "title": "Proposed Reference Architecture", "bullets": ["async extraction", "human confirmation", "no vector DB"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "arch2" },
12
- { "title": "Security and Governance", "bullets": ["human confirmation required", "audit log", "feature-flag rollback"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "security" },
13
- { "title": "Feasibility and Dependencies", "bullets": ["labeled sample needed", "EDI feasibility study"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "feasibility" },
14
- { "title": "Pilot Design", "bullets": ["1 warehouse", "4-week window", "baseline measurement first"], "hasFooterOrPageNumber": true, "hasNumericClaim": true, "citationsPresent": true, "notes": "pilot" },
15
- { "title": "Evaluation Criteria", "bullets": ["confirmation-edit rate", "time vs baseline", "zero unauthorized exposure"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "eval" },
16
- { "title": "Implementation Roadmap", "bullets": ["discovery", "PoC", "pilot", "production readiness", "expansion"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "roadmap" },
17
- { "title": "Risks and Decisions", "bullets": ["low data readiness", "over-trust risk"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "risks" },
18
- { "title": "References and Assumptions", "bullets": ["source-docs", "EDI assumption"], "hasFooterOrPageNumber": true, "hasNumericClaim": false, "citationsPresent": true, "notes": "refs" }
20
+ {
21
+ "title": "Title",
22
+ "bullets": [
23
+ "**Enterprise Software: Architecture Assessment and AI Integration Strategy**",
24
+ "Synthetic Inventory Platform · demonstration deck · v0.1 (fictional system)"
25
+ ],
26
+ "notes": "Introduce the fictional Synthetic Inventory Platform and the purpose of the deck — an evidence-backed architecture and AI-integration review, end to end. Everything shown is synthetic.",
27
+ "hasFooterOrPageNumber": true,
28
+ "hasNumericClaim": false,
29
+ "citationsPresent": true
30
+ },
31
+ {
32
+ "title": "Executive Summary",
33
+ "bullets": [
34
+ "Reviewed five fictional modules: Catalog, Stock Ledger, Purchase Orders, Receiving, Reporting [source: source-docs/overview.md#2-modules]",
35
+ "Three candidate opportunities: one AI candidate, one deterministic automation, one \"fix the data first\" [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md]",
36
+ "One blocker found and handled by recommending a prerequisite change instead of AI [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md#opp-003--change-history-explanation-for-purchase-orders]"
37
+ ],
38
+ "notes": "One-slide summary. Every statement references the opportunity matrix; no figures are invented.",
39
+ "hasFooterOrPageNumber": true,
40
+ "hasNumericClaim": false,
41
+ "citationsPresent": true
42
+ },
43
+ {
44
+ "title": "Current-State Architecture",
45
+ "bullets": [
46
+ "Modules: Catalog, Stock Ledger, Purchase Orders, Receiving, Reporting [source: source-docs/overview.md#2-modules]",
47
+ "Receiving is fully manual data entry against an open Purchase Order [source: source-docs/receiving-workflow.md#2-steps]",
48
+ "Diagram: Associate → Receiving UI → Stock Ledger; supervisor review on discrepancies (documented-only, not code-verified)"
49
+ ],
50
+ "notes": "Architecture is reconstructed from documentation only (no code in this demo), so every element is tagged documented-only per software-reverse-engineering.",
51
+ "hasFooterOrPageNumber": true,
52
+ "hasNumericClaim": false,
53
+ "citationsPresent": true
54
+ },
55
+ {
56
+ "title": "Example Business Workflow: Receiving",
57
+ "bullets": [
58
+ "Associate scans the shipment against an open PO [source: source-docs/receiving-workflow.md#2-steps]",
59
+ "Associate manually enters received quantities",
60
+ "Stock Ledger updates per received line",
61
+ "Discrepancies are flagged for supervisor review"
62
+ ],
63
+ "notes": "Walk through the four documented steps; step 2 is the manual pain point that drives OPP-001.",
64
+ "hasFooterOrPageNumber": true,
65
+ "hasNumericClaim": false,
66
+ "citationsPresent": true
67
+ },
68
+ {
69
+ "title": "Engineering Pain Points",
70
+ "bullets": [
71
+ "Manual packing-slip re-keying causes stock mismatches [source: source-docs/overview.md#3-known-pain-points-fictional-for-demonstration-only]",
72
+ "Reorder decisions rely on a manually read weekly CSV report",
73
+ "Purchase Order change history is not consistently recorded"
74
+ ],
75
+ "notes": "All three pain points are stated in the synthetic overview document; none are measured.",
76
+ "hasFooterOrPageNumber": true,
77
+ "hasNumericClaim": false,
78
+ "citationsPresent": true
79
+ },
80
+ {
81
+ "title": "AI Opportunity Matrix (summary)",
82
+ "bullets": [
83
+ "(table row)",
84
+ "(table row)",
85
+ "(table row)"
86
+ ],
87
+ "notes": "Source is ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md. OPP-002 shows the planner recommending conventional automation over AI.",
88
+ "hasFooterOrPageNumber": true,
89
+ "hasNumericClaim": false,
90
+ "citationsPresent": false
91
+ },
92
+ {
93
+ "title": "Prioritized AI Use Case: OPP-001",
94
+ "bullets": [
95
+ "Weighted feasibility score: 3.45, band rework-required (illustrative inputs) [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md#reproducible-score-for-opp-001]",
96
+ "Non-AI alternative considered first: supplier EDI/CSV import",
97
+ "Pilot only after the data-readiness gap (labeled sample slips) is closed"
98
+ ],
99
+ "notes": "The score is reproducible with scripts/score-opportunity.mjs; the inputs are illustrative, not measured.",
100
+ "hasFooterOrPageNumber": true,
101
+ "hasNumericClaim": true,
102
+ "citationsPresent": true
103
+ },
104
+ {
105
+ "title": "Proposed Reference Architecture (if OPP-001 proceeds)",
106
+ "bullets": [
107
+ "Entry point: a new \"suggested receipt\" step before the existing manual entry",
108
+ "Asynchronous extraction with human confirmation before any Stock Ledger write",
109
+ "No vector database or agent framework — not justified by this scope (toolkit reference: architecture-alternatives.md)"
110
+ ],
111
+ "notes": "The simplest architecture that satisfies the requirement; each component is tied to a stated need.",
112
+ "hasFooterOrPageNumber": true,
113
+ "hasNumericClaim": false,
114
+ "citationsPresent": false
115
+ },
116
+ {
117
+ "title": "Security and Governance",
118
+ "bullets": [
119
+ "Associate must confirm or edit extracted quantities before they post (no autonomous writes)",
120
+ "Audit log of image, extracted value, and confirmed value",
121
+ "Feature flag reverts instantly to fully manual entry (toolkit reference: security-patterns.md)"
122
+ ],
123
+ "notes": "Controls follow the security-pattern checklist: human approval, audit logging, rollback.",
124
+ "hasFooterOrPageNumber": true,
125
+ "hasNumericClaim": false,
126
+ "citationsPresent": false
127
+ },
128
+ {
129
+ "title": "Feasibility and Dependencies",
130
+ "bullets": [
131
+ "Dependency: a labeled sample of packing slips for evaluation (not yet available in this scenario)",
132
+ "Dependency: supplier EDI feasibility study, which may make the AI approach unnecessary [source: ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md#opp-001--packing-slip-extraction-assistance]"
133
+ ],
134
+ "notes": "Both dependencies must be resolved before a proof of concept starts.",
135
+ "hasFooterOrPageNumber": true,
136
+ "hasNumericClaim": false,
137
+ "citationsPresent": true
138
+ },
139
+ {
140
+ "title": "Pilot Design",
141
+ "bullets": [
142
+ "Scope: one warehouse, opt-in associates, a 4-week window (illustrative proposal)",
143
+ "Baseline to measure first: manual entry time per receipt and current discrepancy rate"
144
+ ],
145
+ "notes": "Scope values are proposals to be agreed with stakeholders, not commitments; no baseline numbers exist yet.",
146
+ "hasFooterOrPageNumber": true,
147
+ "hasNumericClaim": true,
148
+ "citationsPresent": true
149
+ },
150
+ {
151
+ "title": "Evaluation Criteria",
152
+ "bullets": [
153
+ "Confirmation-edit rate (target set only after the baseline is measured)",
154
+ "Time to complete a receipt versus baseline",
155
+ "Zero unauthorized data exposure incidents — a hard requirement (toolkit reference: adoption-roadmap.md)"
156
+ ],
157
+ "notes": "Metrics come from the evaluation framework; no target is stated until a baseline exists.",
158
+ "hasFooterOrPageNumber": true,
159
+ "hasNumericClaim": false,
160
+ "citationsPresent": false
161
+ },
162
+ {
163
+ "title": "Implementation Roadmap",
164
+ "bullets": [
165
+ "Discovery and governance",
166
+ "Proof of concept with sample slips",
167
+ "Controlled pilot in one warehouse",
168
+ "Production readiness, then measured expansion (toolkit reference: adoption-roadmap.md)"
169
+ ],
170
+ "notes": "Five phases, each with exit conditions; the pilot is selected from scoring output, not popularity.",
171
+ "hasFooterOrPageNumber": true,
172
+ "hasNumericClaim": false,
173
+ "citationsPresent": false
174
+ },
175
+ {
176
+ "title": "Risks and Decisions",
177
+ "bullets": [
178
+ "(table row)",
179
+ "(table row)"
180
+ ],
181
+ "notes": "Decision requested: approve the discovery phase and the labeled-sample collection.",
182
+ "hasFooterOrPageNumber": true,
183
+ "hasNumericClaim": false,
184
+ "citationsPresent": false
185
+ },
186
+ {
187
+ "title": "References and Assumptions",
188
+ "bullets": [
189
+ "Sources: examples/synthetic-inventory-system/source-docs/ and ai-opportunity-matrix/ (fictional)",
190
+ "Assumption: supplier EDI feasibility has not been evaluated in this scenario"
191
+ ],
192
+ "notes": "Closing slide; all content is synthetic and generated for demonstration purposes.",
193
+ "hasFooterOrPageNumber": true,
194
+ "hasNumericClaim": false,
195
+ "citationsPresent": true
196
+ }
19
197
  ]
20
198
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@thanbir-tamim/enterprise-project-intelligence-agent",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Project-agnostic Agent Skills toolkit for reverse-engineering software projects from documentation/code and planning safe, evidence-driven AI integrations.",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -8,6 +8,7 @@
8
8
  "epi-agent": "scripts/cli.mjs"
9
9
  },
10
10
  "files": [
11
+ "assets/",
11
12
  "skills/",
12
13
  "templates/",
13
14
  "scripts/",
package/scripts/cli.mjs CHANGED
@@ -5,14 +5,14 @@
5
5
  * Usage:
6
6
  * node scripts/cli.mjs list
7
7
  * node scripts/cli.mjs validate
8
- * node scripts/cli.mjs inventory <corpusPath> [--out <dir>]
9
- * node scripts/cli.mjs release-audit [--pack]
8
+ * node scripts/cli.mjs inventory <corpusPath> [--out <dir>] [--exclude <name-or-glob>,...]
9
+ * node scripts/cli.mjs release-audit [--all]
10
10
  */
11
11
  import { resolve, dirname, join } from "node:path";
12
12
  import { fileURLToPath } from "node:url";
13
13
  import { validateSkills, listSkillDirs, parseFrontmatter } from "./lib/skills.mjs";
14
14
  import { readFileSync } from "node:fs";
15
- import { runInventory } from "../skills/project-documentation-discovery/scripts/inventory.mjs";
15
+ import { runInventory, writeInventoryOutputs, parseArgs as parseInventoryArgs } from "../skills/project-documentation-discovery/scripts/inventory.mjs";
16
16
  import { runReleaseAudit } from "./release-audit.mjs";
17
17
 
18
18
  const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), "..");
@@ -45,23 +45,29 @@ function cmdValidate() {
45
45
  }
46
46
 
47
47
  function cmdInventory(argv) {
48
- const [corpusPath, ...rest] = argv;
49
- if (!corpusPath) {
50
- console.error("Usage: node scripts/cli.mjs inventory <corpusPath> [--out <dir>]");
51
- process.exit(1);
48
+ const opts = parseInventoryArgs(argv);
49
+ if (!opts.corpusPath) {
50
+ console.error("Usage: epi-agent inventory <corpusPath> [--out <dir>] [--exclude <name-or-glob>,...]");
51
+ return 1;
52
+ }
53
+ try {
54
+ const result = runInventory(opts.corpusPath, { excludes: opts.excludes });
55
+ const { byStatus, files } = writeInventoryOutputs(opts.outDir, opts.corpusPath, result);
56
+ console.log(`Inventoried ${result.inventory.length} files; wrote ${files.join(", ")} to ${opts.outDir}`);
57
+ console.log(JSON.stringify(byStatus, null, 2));
58
+ return 0;
59
+ } catch (err) {
60
+ console.error(`inventory: ${err.message}`);
61
+ return 1;
52
62
  }
53
- let outDir = "./.local-knowledge";
54
- for (let i = 0; i < rest.length; i++) if (rest[i] === "--out") outDir = rest[++i];
55
- const { inventory } = runInventory(corpusPath);
56
- console.log(`Processed ${inventory.length} files. (Pass --out to persist; this CLI call reports counts only unless invoked via the skill script directly.)`);
57
63
  }
58
64
 
59
65
  async function cmdReleaseAudit(argv) {
60
- const result = await runReleaseAudit(ROOT);
66
+ const result = await runReleaseAudit(ROOT, { all: argv.includes("--all") });
61
67
  console.log(JSON.stringify(result.summary, null, 2));
62
68
  if (result.findings.length) {
63
69
  console.log(`\n${result.findings.length} finding(s):`);
64
- for (const f of result.findings) console.log(` [${f.severity}] ${f.category} — ${f.file}`);
70
+ for (const f of result.findings) console.log(` [${f.severity}] ${f.category} — ${f.file}:${f.line} (value redacted)`);
65
71
  } else {
66
72
  console.log("No findings.");
67
73
  }
@@ -74,7 +80,7 @@ async function main() {
74
80
  switch (cmd) {
75
81
  case "list": cmdList(); break;
76
82
  case "validate": code = cmdValidate(); break;
77
- case "inventory": cmdInventory(rest); break;
83
+ case "inventory": code = cmdInventory(rest); break;
78
84
  case "release-audit": code = await cmdReleaseAudit(rest); break;
79
85
  default:
80
86
  console.log("Usage: node scripts/cli.mjs <list|validate|inventory|release-audit>");
@@ -32,7 +32,7 @@ export function parseFrontmatter(content) {
32
32
  const indentMatch = /^(\s*)(.*)$/.exec(line);
33
33
  const indent = indentMatch[1].length;
34
34
  if (line.trim() === "" ) { continue; }
35
- if (indent > blockScalar.baseIndent || blockScalar.baseIndent === null) {
35
+ if (blockScalar.baseIndent === null || indent >= blockScalar.baseIndent) {
36
36
  if (blockScalar.baseIndent === null) blockScalar.baseIndent = indent;
37
37
  blockScalar.lines.push(line.trim());
38
38
  continue;