Phase 4: refresh artifact (980) + add manifests/ (DEC-031)
The aggregator now reads manifests/<venture>.json. Seeded rootblocks.json (22) to prove the live override; each venture publishes its own manifest here via CI.
This commit is contained in:
+22
-21
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"std": "STD-002@1.0.0",
|
"std": "STD-002@1.0.0",
|
||||||
"generatedAt": "2026-07-01T18:10:16.279Z",
|
"generatedAt": "2026-07-03T00:57:09.893Z",
|
||||||
"generator": "70-execution/scripts/aggregate-metrics.mjs",
|
"generator": "70-execution/scripts/aggregate-metrics.mjs",
|
||||||
"note": "Single source of truth for ecosystem stat strips. Safe to publish: only aggregates, no PII/clients/money. Every value carries provenance; see ecosystem-metrics.ledger.md. Each site shapes its own strip/velocity from strip + perVenture.",
|
"note": "Single source of truth for ecosystem stat strips. Safe to publish: only aggregates, no PII/clients/money. Every value carries provenance; see ecosystem-metrics.ledger.md. Each site shapes its own strip/velocity from strip + perVenture.",
|
||||||
"strip": {
|
"strip": {
|
||||||
@@ -53,11 +53,11 @@
|
|||||||
"verification": 3
|
"verification": 3
|
||||||
},
|
},
|
||||||
"decisions": {
|
"decisions": {
|
||||||
"value": 975,
|
"value": 980,
|
||||||
"unit": "count",
|
"unit": "count",
|
||||||
"source": "git:andres.co (live) + declared:70-execution/scripts/metrics.ventures.json",
|
"source": "live manifests (andres.co, RootBlocks) + declared fallback:70-execution/scripts/metrics.ventures.json",
|
||||||
"method": "sum of per-repo DEC-record counts (find 10-decisions -name 'DEC-*.md' | wc -l per repo): Datta:774, Insttantt:90, SliceOps:42, andres.co:30, RootBlocks:18, ApiFusion:11, Resolvi:10, Nextars:0",
|
"method": "sum of per-repo DEC-record counts (find 10-decisions -name 'DEC-*.md' | wc -l per repo): Datta:774, Insttantt:90, SliceOps:42, andres.co:31, RootBlocks:22, ApiFusion:11, Resolvi:10, Nextars:0",
|
||||||
"asOf": "2026-07-01",
|
"asOf": "2026-07-03",
|
||||||
"public": true,
|
"public": true,
|
||||||
"verification": 2
|
"verification": 2
|
||||||
},
|
},
|
||||||
@@ -103,19 +103,19 @@
|
|||||||
"venture": "andres.co",
|
"venture": "andres.co",
|
||||||
"repo": "andres-co",
|
"repo": "andres-co",
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"decisions": 30,
|
"decisions": 31,
|
||||||
"source": "git:andres.co (live)",
|
"source": "git:andres.co (live manifest)",
|
||||||
"method": "overridden by the live emitter (tools/metrics.mjs)",
|
"method": "overridden by the live emitter (tools/metrics.mjs)",
|
||||||
"asOf": "2026-07-01T18:10:16.227Z"
|
"asOf": "2026-07-03T00:57:09.852Z"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"venture": "RootBlocks",
|
"venture": "RootBlocks",
|
||||||
"repo": "rootblocks-engineering",
|
"repo": "rootblocks-engineering",
|
||||||
"branch": "main",
|
"branch": "main",
|
||||||
"decisions": 18,
|
"decisions": 22,
|
||||||
"source": "operator-confirmed (RootBlocks STD-002 slice, origin/main)",
|
"source": "git:RootBlocks (live manifest)",
|
||||||
"method": "find 10-decisions -name 'DEC-*.md' | wc -l on origin/main (16 accepted + 2 rfcs); declared 21 conflated highest id DEC-021 with the count. Becomes 19 when RootBlocks DEC-024 merges",
|
"method": "find 10-decisions -name 'DEC-*.md' | wc -l on origin/main (16 accepted + 2 rfcs); declared 21 conflated highest id DEC-021 with the count. Becomes 19 when RootBlocks DEC-024 merges",
|
||||||
"asOf": "2026-07-01"
|
"asOf": "2026-07-03"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"venture": "ApiFusion",
|
"venture": "ApiFusion",
|
||||||
@@ -170,9 +170,9 @@
|
|||||||
"status": "live",
|
"status": "live",
|
||||||
"first_commit": "2026-06-20",
|
"first_commit": "2026-06-20",
|
||||||
"launch": "2026-06-20",
|
"launch": "2026-06-20",
|
||||||
"worked_hours": 51,
|
"worked_hours": 53.2,
|
||||||
"loc": 3184,
|
"loc": 3198,
|
||||||
"decisions": 30,
|
"decisions": 31,
|
||||||
"tier": "T2",
|
"tier": "T2",
|
||||||
"complexity": {
|
"complexity": {
|
||||||
"state": 0,
|
"state": 0,
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
},
|
},
|
||||||
"note": "This site. First commit to a live, governed v1 the same day.",
|
"note": "This site. First commit to a live, governed v1 the same day.",
|
||||||
"note_es": "Este sitio. Del primer commit a una v1 viva y gobernada el mismo día.",
|
"note_es": "Este sitio. Del primer commit a una v1 viva y gobernada el mismo día.",
|
||||||
"commits": 93
|
"commits": 95
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Insttantt",
|
"name": "Insttantt",
|
||||||
@@ -212,7 +212,7 @@
|
|||||||
"launch": "2026-06-10",
|
"launch": "2026-06-10",
|
||||||
"worked_hours": 167.7,
|
"worked_hours": 167.7,
|
||||||
"loc": 219110,
|
"loc": 219110,
|
||||||
"decisions": 18,
|
"decisions": 22,
|
||||||
"repos": 10,
|
"repos": 10,
|
||||||
"complexity": {
|
"complexity": {
|
||||||
"state": 3,
|
"state": 3,
|
||||||
@@ -223,7 +223,8 @@
|
|||||||
"code": 3
|
"code": 3
|
||||||
},
|
},
|
||||||
"note": "10 repos: a security, identity, and fraud platform plus an agentic build engine. It reaches past Insttantt's complexity, built on the framework with AI. An approximate sum; the platform is largely still in progress, the website is live.",
|
"note": "10 repos: a security, identity, and fraud platform plus an agentic build engine. It reaches past Insttantt's complexity, built on the framework with AI. An approximate sum; the platform is largely still in progress, the website is live.",
|
||||||
"note_es": "10 repos: una plataforma de seguridad, identidad y fraude más un motor de build agéntico. Supera la complejidad de Insttantt, construida sobre el framework y con AI. Una suma aproximada; la plataforma está en gran parte en progreso, el website está en vivo."
|
"note_es": "10 repos: una plataforma de seguridad, identidad y fraude más un motor de build agéntico. Supera la complejidad de Insttantt, construida sobre el framework y con AI. Una suma aproximada; la plataforma está en gran parte en progreso, el website está en vivo.",
|
||||||
|
"commits": 347
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Datta",
|
"name": "Datta",
|
||||||
@@ -333,11 +334,11 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"key": "decisions",
|
"key": "decisions",
|
||||||
"value": 975,
|
"value": 980,
|
||||||
"unit": "count",
|
"unit": "count",
|
||||||
"source": "git:andres.co (live) + declared:70-execution/scripts/metrics.ventures.json",
|
"source": "live manifests (andres.co, RootBlocks) + declared fallback:70-execution/scripts/metrics.ventures.json",
|
||||||
"method": "sum of per-repo DEC-record counts (find 10-decisions -name 'DEC-*.md' | wc -l per repo): Datta:774, Insttantt:90, SliceOps:42, andres.co:30, RootBlocks:18, ApiFusion:11, Resolvi:10, Nextars:0",
|
"method": "sum of per-repo DEC-record counts (find 10-decisions -name 'DEC-*.md' | wc -l per repo): Datta:774, Insttantt:90, SliceOps:42, andres.co:31, RootBlocks:22, ApiFusion:11, Resolvi:10, Nextars:0",
|
||||||
"asOf": "2026-07-01",
|
"asOf": "2026-07-03",
|
||||||
"verification": 2
|
"verification": 2
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
# Ecosystem metrics provenance ledger
|
# Ecosystem metrics provenance ledger
|
||||||
|
|
||||||
Generated 2026-07-01T18:10:16.279Z by 70-execution/scripts/aggregate-metrics.mjs (STD-002). Every published number and its source.
|
Generated 2026-07-03T00:57:09.893Z by 70-execution/scripts/aggregate-metrics.mjs (STD-002). Every published number and its source.
|
||||||
|
|
||||||
## Strip numbers
|
## Strip numbers
|
||||||
|
|
||||||
@@ -11,7 +11,7 @@ Generated 2026-07-01T18:10:16.279Z by 70-execution/scripts/aggregate-metrics.mjs
|
|||||||
| core | 3 | declared | operator-declared constant: core products carried as flagship | 2026-06-30 | 3 |
|
| core | 3 | declared | operator-declared constant: core products carried as flagship | 2026-06-30 | 3 |
|
||||||
| people | 990000 | external:product-databases | operator-declared aggregate of distinct people served across live platforms (Insttantt + Datta); a safe floor, '+' denotes at least | 2026-06-30 | 3 |
|
| people | 990000 | external:product-databases | operator-declared aggregate of distinct people served across live platforms (Insttantt + Datta); a safe floor, '+' denotes at least | 2026-06-30 | 3 |
|
||||||
| data_points | 54000000 | external:product-databases | operator-declared aggregate of records processed across live platforms; a safe floor, '+' denotes at least | 2026-06-30 | 3 |
|
| data_points | 54000000 | external:product-databases | operator-declared aggregate of records processed across live platforms; a safe floor, '+' denotes at least | 2026-06-30 | 3 |
|
||||||
| decisions | 975 | git:andres.co (live) + declared:70-execution/scripts/metrics.ventures.json | sum of per-repo DEC-record counts (find 10-decisions -name 'DEC-*.md' \| wc -l per repo): Datta:774, Insttantt:90, SliceOps:42, andres.co:30, RootBlocks:18, ApiFusion:11, Resolvi:10, Nextars:0 | 2026-07-01 | 2 |
|
| decisions | 980 | live manifests (andres.co, RootBlocks) + declared fallback:70-execution/scripts/metrics.ventures.json | sum of per-repo DEC-record counts (find 10-decisions -name 'DEC-*.md' \| wc -l per repo): Datta:774, Insttantt:90, SliceOps:42, andres.co:31, RootBlocks:22, ApiFusion:11, Resolvi:10, Nextars:0 | 2026-07-03 | 2 |
|
||||||
| x_faster | 124 | declared:70-execution/scripts/metrics.ventures.json (DEC-019) | baseline (Insttantt) hours-per-complexity-point over RootBlocks's, at comparable complexity (index within 2 of baseline 19) | 2026-07-01 | 2 |
|
| x_faster | 124 | declared:70-execution/scripts/metrics.ventures.json (DEC-019) | baseline (Insttantt) hours-per-complexity-point over RootBlocks's, at comparable complexity (index within 2 of baseline 19) | 2026-07-01 | 2 |
|
||||||
|
|
||||||
## Decisions by repo
|
## Decisions by repo
|
||||||
@@ -21,13 +21,13 @@ Generated 2026-07-01T18:10:16.279Z by 70-execution/scripts/aggregate-metrics.mjs
|
|||||||
| Datta | datta-engineering | develop | 774 | operator-confirmed (Datta STD-002 slice, origin/develop) | 2026-07-01 |
|
| Datta | datta-engineering | develop | 774 | operator-confirmed (Datta STD-002 slice, origin/develop) | 2026-07-01 |
|
||||||
| Insttantt | insttantt-v2/insttantt-engineering | main | 90 | local-clone (to confirm) | 2026-07-01 |
|
| Insttantt | insttantt-v2/insttantt-engineering | main | 90 | local-clone (to confirm) | 2026-07-01 |
|
||||||
| SliceOps | sliceops-website | main | 42 | operator-confirmed (SliceOps STD-002 slice, origin/main) | 2026-07-01 |
|
| SliceOps | sliceops-website | main | 42 | operator-confirmed (SliceOps STD-002 slice, origin/main) | 2026-07-01 |
|
||||||
| andres.co | andres-co | main | 30 | git:andres.co (live) | 2026-07-01T18:10:16.227Z |
|
| andres.co | andres-co | main | 31 | git:andres.co (live manifest) | 2026-07-03T00:57:09.852Z |
|
||||||
| RootBlocks | rootblocks-engineering | main | 18 | operator-confirmed (RootBlocks STD-002 slice, origin/main) | 2026-07-01 |
|
| RootBlocks | rootblocks-engineering | main | 22 | git:RootBlocks (live manifest) | 2026-07-03 |
|
||||||
| ApiFusion | apifusion-engineering | main | 11 | operator-confirmed (ApiFusion STD-002 slice, gitea/main) | 2026-07-01 |
|
| ApiFusion | apifusion-engineering | main | 11 | operator-confirmed (ApiFusion STD-002 slice, gitea/main) | 2026-07-01 |
|
||||||
| Resolvi | resolvi-engineering | develop | 10 | operator-confirmed (Resolvi STD-002 slice, origin/develop) | 2026-07-01 |
|
| Resolvi | resolvi-engineering | develop | 10 | operator-confirmed (Resolvi STD-002 slice, origin/develop) | 2026-07-01 |
|
||||||
| Nextars | nextars-orchestrator | main | 0 | no-decisions-dir | 2026-07-01 |
|
| Nextars | nextars-orchestrator | main | 0 | no-decisions-dir | 2026-07-01 |
|
||||||
|
|
||||||
**Total decisions: 975**
|
**Total decisions: 980**
|
||||||
|
|
||||||
V = verification: 1 git-auto, 2 human-verified (DEC-019 rubric), 3 external/declared.
|
V = verification: 1 git-auto, 2 human-verified (DEC-019 rubric), 3 external/declared.
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
# manifests/
|
||||||
|
|
||||||
|
Each venture publishes its STD-002 `metrics.json` here as `<venture>.json` (lowercase venture
|
||||||
|
key). The andres-engineering aggregator reads all of them (public, no token) and folds them
|
||||||
|
into `ecosystem-metrics.json`, overriding the hand-declared counts (DEC-031). The git-auto
|
||||||
|
numbers (decisions, commits, worked_hours, loc) go live; complexity stays the human-reviewed
|
||||||
|
declared value.
|
||||||
|
|
||||||
|
Publish from a venture's CI publish step:
|
||||||
|
`cp metrics.json ../ecosystem-metrics/manifests/<venture>.json` then commit + push.
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
{
|
||||||
|
"version": "1.0.0", "std": "STD-002@1.0.0", "repo": "rootblocks-engineering",
|
||||||
|
"venture": "RootBlocks", "domain": "Intelligence", "status": "live", "baseline": false,
|
||||||
|
"repos": 10, "generatedAt": "2026-07-03T00:00:00.000Z", "generator": "70-execution/scripts/metrics.mjs",
|
||||||
|
"metrics": {
|
||||||
|
"decisions": { "value": 22, "unit": "count", "source": "git:10-decisions", "method": "find 10-decisions -name 'DEC-*.md' | wc -l on origin/main", "asOf": "2026-07-03", "auto": true, "public": true, "verification": 1 },
|
||||||
|
"commits": { "value": 347, "unit": "count", "source": "git:subrepos", "method": "sum over 10 subrepos", "asOf": "2026-07-03", "auto": true, "public": true, "verification": 1 },
|
||||||
|
"worked_hours": { "value": 167.7, "unit": "hours", "source": "git:subrepos-commit-timestamps", "method": "session clustering (DEC-019), summed", "asOf": "2026-07-03", "auto": true, "public": true, "verification": 1 },
|
||||||
|
"loc": { "value": 219110, "unit": "lines", "source": "git:subrepos-tracked-source", "method": "git grep -c, code only", "asOf": "2026-07-03", "auto": true, "public": true, "verification": 1 }
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user