@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.
- package/CHANGELOG.md +23 -2
- package/README.md +302 -46
- package/assets/figures/feasibility-scoring-engine.png +0 -0
- package/assets/figures/hero-architecture.png +0 -0
- package/assets/figures/skills-interaction-map.png +0 -0
- package/docs/INSTALLATION.md +6 -6
- package/docs/SUPPORTED_FORMATS.md +4 -4
- package/examples/synthetic-inventory-system/ai-opportunity-matrix/AI_OPPORTUNITY_MATRIX.md +4 -4
- package/examples/synthetic-inventory-system/generated-docs/INVENTORY_SUMMARY.md +17 -0
- package/examples/synthetic-inventory-system/generated-docs/evidence-index.json +78 -0
- package/examples/synthetic-inventory-system/generated-docs/inventory.json +26 -0
- package/examples/synthetic-inventory-system/presentation/DEMO_DECK.md +69 -55
- package/examples/synthetic-inventory-system/presentation/demo-deck.json +194 -16
- package/package.json +2 -1
- package/scripts/cli.mjs +20 -14
- package/scripts/lib/skills.mjs +1 -1
- package/scripts/release-audit.mjs +73 -70
- package/skills/corporate-presentation-generator/SKILL.md +49 -23
- package/skills/corporate-presentation-generator/scripts/outline-to-deck-json.mjs +77 -0
- package/skills/documentation-quality-auditor/SKILL.md +28 -21
- package/skills/documentation-quality-auditor/references/audit-checks.md +15 -8
- package/skills/documentation-quality-auditor/scripts/audit-docs.mjs +192 -32
- package/skills/engineering-knowledge-transfer/SKILL.md +1 -5
- package/skills/enterprise-ai-integration-planner/SKILL.md +13 -15
- package/skills/enterprise-ai-integration-planner/references/feasibility-scoring.md +26 -5
- package/skills/enterprise-ai-integration-planner/scripts/score-opportunity.mjs +32 -15
- package/skills/presentation-compliance-validator/SKILL.md +15 -15
- package/skills/presentation-compliance-validator/references/rule-schema.md +67 -10
- package/skills/presentation-compliance-validator/scripts/validate-deck.mjs +48 -11
- package/skills/project-documentation-discovery/SKILL.md +25 -8
- package/skills/project-documentation-discovery/references/format-matrix.md +4 -4
- package/skills/project-documentation-discovery/scripts/inventory.mjs +174 -100
- package/skills/project-documentation-discovery/scripts/secrets.mjs +99 -0
- package/skills/project-knowledge-assistant/SKILL.md +1 -7
- package/skills/software-change-impact-analyzer/SKILL.md +15 -11
- package/skills/software-reverse-engineering/SKILL.md +14 -10
- package/skills/software-reverse-engineering/references/system-map-schema.md +27 -0
- package/skills/technical-document-generator/SKILL.md +6 -8
- 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
|
-
|
|
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 ·
|
|
12
|
+
- **Enterprise Software: Architecture Assessment and AI Integration Strategy**
|
|
13
|
+
- Synthetic Inventory Platform · demonstration deck · v0.1 (fictional system)
|
|
13
14
|
|
|
14
|
-
|
|
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
|
-
-
|
|
22
|
-
|
|
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
|
-
|
|
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
|
-
|
|
34
|
-
- Receiving
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
55
|
-
|
|
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 |
|
|
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
|
-
|
|
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 (
|
|
72
|
-
- Non-AI alternative considered: supplier EDI/CSV import
|
|
73
|
-
-
|
|
74
|
-
|
|
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
|
-
-
|
|
81
|
-
- No vector database or agent framework
|
|
82
|
-
|
|
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
|
|
88
|
-
- Audit log of
|
|
89
|
-
-
|
|
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
|
|
95
|
-
|
|
96
|
-
|
|
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
|
|
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
|
-
-
|
|
108
|
-
- Time
|
|
109
|
-
- Zero unauthorized data exposure incidents
|
|
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
|
|
115
|
-
|
|
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
|
-
|
|
|
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
|
-
-
|
|
129
|
-
- Assumption: supplier EDI feasibility not
|
|
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": [
|
|
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
|
-
{
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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.
|
|
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 [--
|
|
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
|
|
49
|
-
if (!corpusPath) {
|
|
50
|
-
console.error("Usage:
|
|
51
|
-
|
|
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>");
|
package/scripts/lib/skills.mjs
CHANGED
|
@@ -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 (
|
|
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;
|