@vectros-ai/blueprints 0.6.3 → 0.6.4
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 +31 -0
- package/dist/index.js +62 -9
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +62 -9
- package/dist/index.mjs.map +1 -1
- package/guides/agentic-sdlc.md +89 -3
- package/package.json +1 -1
- package/prompts/agentic-sdlc-agent.md +85 -10
package/dist/index.mjs
CHANGED
|
@@ -1037,9 +1037,10 @@ var DATA_PLANE_ACTIONS = [
|
|
|
1037
1037
|
"folders:r",
|
|
1038
1038
|
"folders:c"
|
|
1039
1039
|
];
|
|
1040
|
+
var EDITOR_ACTIONS = [...DATA_PLANE_ACTIONS, "records:d", "documents:d", "folders:d"];
|
|
1040
1041
|
var agenticSdlc = {
|
|
1041
1042
|
name: "agentic-sdlc",
|
|
1042
|
-
version: "1.
|
|
1043
|
+
version: "1.2.0",
|
|
1043
1044
|
description: "A whole-SDLC system of record for an AI development team \u2014 decisions, designs, references, runbooks, post-mortems (as documents) plus controls, conventions, gotchas, and a glossary (as records), cross-linked and recalled by meaning.",
|
|
1044
1045
|
contextId: "agentic-sdlc",
|
|
1045
1046
|
contextName: "Agentic SDLC Knowledge Base",
|
|
@@ -1474,6 +1475,19 @@ var agenticSdlc = {
|
|
|
1474
1475
|
fieldType: "date",
|
|
1475
1476
|
description: "ISO-8601 last-reviewed date. Range-queryable.",
|
|
1476
1477
|
renderHints: { label: "Reviewed on", widget: "date", order: 12 }
|
|
1478
|
+
},
|
|
1479
|
+
{
|
|
1480
|
+
// Provenance for sync: the source file this record was distilled from. A
|
|
1481
|
+
// record can't carry an in-file marker the way a document can (many records
|
|
1482
|
+
// come from one file), so it names its source instead — a change to that file
|
|
1483
|
+
// finds (equality lookup) and re-extracts exactly its records. Equality, not
|
|
1484
|
+
// range: file-level is the sync unit (re-extraction reprocesses the whole file),
|
|
1485
|
+
// and the schema keeps its single range lookup for the date row.
|
|
1486
|
+
fieldId: "sourceRef",
|
|
1487
|
+
fieldType: "string",
|
|
1488
|
+
filterable: true,
|
|
1489
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
1490
|
+
renderHints: { label: "Source ref", widget: "text", order: 13 }
|
|
1477
1491
|
}
|
|
1478
1492
|
],
|
|
1479
1493
|
lookupFields: [
|
|
@@ -1483,7 +1497,8 @@ var agenticSdlc = {
|
|
|
1483
1497
|
"area",
|
|
1484
1498
|
"verifiedBy",
|
|
1485
1499
|
"relatedDecision",
|
|
1486
|
-
{ fieldName: "reviewedOn", rangeEnabled: true }
|
|
1500
|
+
{ fieldName: "reviewedOn", rangeEnabled: true },
|
|
1501
|
+
"sourceRef"
|
|
1487
1502
|
]
|
|
1488
1503
|
},
|
|
1489
1504
|
{
|
|
@@ -1560,9 +1575,23 @@ var agenticSdlc = {
|
|
|
1560
1575
|
fieldType: "date",
|
|
1561
1576
|
description: "ISO-8601 \u2014 when last revised. Range-queryable.",
|
|
1562
1577
|
renderHints: { label: "Updated on", widget: "date", order: 9 }
|
|
1578
|
+
},
|
|
1579
|
+
{
|
|
1580
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
1581
|
+
fieldId: "sourceRef",
|
|
1582
|
+
fieldType: "string",
|
|
1583
|
+
filterable: true,
|
|
1584
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
1585
|
+
renderHints: { label: "Source ref", widget: "text", order: 10 }
|
|
1563
1586
|
}
|
|
1564
1587
|
],
|
|
1565
|
-
lookupFields: [
|
|
1588
|
+
lookupFields: [
|
|
1589
|
+
"area",
|
|
1590
|
+
"status",
|
|
1591
|
+
"establishedBy",
|
|
1592
|
+
{ fieldName: "updatedOn", rangeEnabled: true },
|
|
1593
|
+
"sourceRef"
|
|
1594
|
+
]
|
|
1566
1595
|
},
|
|
1567
1596
|
{
|
|
1568
1597
|
// A GOTCHA / sharp edge: a symptom, its cause, and the fix. A tight typed
|
|
@@ -1616,9 +1645,22 @@ var agenticSdlc = {
|
|
|
1616
1645
|
fieldType: "date",
|
|
1617
1646
|
description: "ISO-8601 \u2014 when first hit. Range-queryable.",
|
|
1618
1647
|
renderHints: { label: "Discovered on", widget: "date", order: 7 }
|
|
1648
|
+
},
|
|
1649
|
+
{
|
|
1650
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
1651
|
+
fieldId: "sourceRef",
|
|
1652
|
+
fieldType: "string",
|
|
1653
|
+
filterable: true,
|
|
1654
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
1655
|
+
renderHints: { label: "Source ref", widget: "text", order: 8 }
|
|
1619
1656
|
}
|
|
1620
1657
|
],
|
|
1621
|
-
lookupFields: [
|
|
1658
|
+
lookupFields: [
|
|
1659
|
+
"area",
|
|
1660
|
+
"status",
|
|
1661
|
+
{ fieldName: "discoveredOn", rangeEnabled: true },
|
|
1662
|
+
"sourceRef"
|
|
1663
|
+
]
|
|
1622
1664
|
},
|
|
1623
1665
|
{
|
|
1624
1666
|
// A glossary TERM — a definition keyed by the term itself. Structure-dominant:
|
|
@@ -1678,6 +1720,14 @@ var agenticSdlc = {
|
|
|
1678
1720
|
fieldType: "date",
|
|
1679
1721
|
description: "ISO-8601 \u2014 when last revised. Range-queryable.",
|
|
1680
1722
|
renderHints: { label: "Updated on", widget: "date", order: 7 }
|
|
1723
|
+
},
|
|
1724
|
+
{
|
|
1725
|
+
// Provenance for sync — see the note on `control.sourceRef`.
|
|
1726
|
+
fieldId: "sourceRef",
|
|
1727
|
+
fieldType: "string",
|
|
1728
|
+
filterable: true,
|
|
1729
|
+
description: "The source file (repo path) this record was extracted from \u2014 its provenance; a change to that file re-extracts its records. The specific section is encoded in the record externalId.",
|
|
1730
|
+
renderHints: { label: "Source ref", widget: "text", order: 8 }
|
|
1681
1731
|
}
|
|
1682
1732
|
],
|
|
1683
1733
|
// `term` is a UNIQUE equality lookup — exact "define X" + a one-per-term
|
|
@@ -1686,7 +1736,8 @@ var agenticSdlc = {
|
|
|
1686
1736
|
{ fieldName: "term", unique: true },
|
|
1687
1737
|
"area",
|
|
1688
1738
|
"relatedDecision",
|
|
1689
|
-
{ fieldName: "updatedOn", rangeEnabled: true }
|
|
1739
|
+
{ fieldName: "updatedOn", rangeEnabled: true },
|
|
1740
|
+
"sourceRef"
|
|
1690
1741
|
]
|
|
1691
1742
|
}
|
|
1692
1743
|
],
|
|
@@ -1704,11 +1755,13 @@ var agenticSdlc = {
|
|
|
1704
1755
|
// grants the human none by default. Bind it after bootstrap with:
|
|
1705
1756
|
// vectros access grant --principal usr_<your-user-id> --context agentic-sdlc --role editor
|
|
1706
1757
|
// (or the admin app's Access > Contexts > agentic-sdlc > Profiles > Create).
|
|
1707
|
-
//
|
|
1708
|
-
//
|
|
1709
|
-
//
|
|
1758
|
+
// The editor gets the full data plane so a human curator can browse, write/correct,
|
|
1759
|
+
// AND hard-delete the KB (EDITOR_ACTIONS = the service key's set + delete). The
|
|
1760
|
+
// service key deliberately lacks delete and archives instead; the trusted human
|
|
1761
|
+
// owner may permanently remove genuine strays. Still no control-plane action, so
|
|
1762
|
+
// the scope gate accepts it as a data-plane-only role.
|
|
1710
1763
|
roles: {
|
|
1711
|
-
editor: [{ allowedActions:
|
|
1764
|
+
editor: [{ allowedActions: EDITOR_ACTIONS }]
|
|
1712
1765
|
},
|
|
1713
1766
|
servicePrincipal: {
|
|
1714
1767
|
externalId: "agentic-sdlc",
|