From e96e780beb7dd26bd5a6c5c4d358ed59d2e7e630 Mon Sep 17 00:00:00 2001 From: Jarvis Jr Hermes Date: Thu, 8 Oct 2026 18:08:08 +0000 Subject: [PATCH 1/3] docs: restore long-term Strategy and separate six-month horizons --- ...tegy-roadmap-adoption-mobile.workflow.json | 6 +- .../strategy-roadmap-adoption.workflow.json | 6 +- ...strategy-roadmap-loop-mobile.workflow.json | 8 +- diagrams/strategy-roadmap-loop.workflow.json | 8 +- .../strategy-roadmap-mobile.workflow.json | 12 +- diagrams/strategy-roadmap.workflow.json | 12 +- docs/strategy/baseline.mdx | 2 +- docs/strategy/measurement/index.mdx | 2 +- docs/strategy/roadmap.mdx | 50 +++--- docs/strategy/six-months-roadmap.mdx | 136 ++++++++++++++ docs/strategy/six-months-target.mdx | 62 +++++++ docs/strategy/skills-adoption.mdx | 2 +- docs/strategy/skills-governance.mdx | 2 +- docs/strategy/skills-maintenance.mdx | 4 +- docs/strategy/skills-quality.mdx | 2 +- docs/strategy/stage-01-skills-adoption.mdx | 59 +----- docs/strategy/stage-02-autonomous-agent.mdx | 10 +- docs/strategy/target-operating-model.mdx | 84 +++------ research/ai-adoption/assignment-evidence.json | 169 ++++++++++++++++-- research/ai-adoption/strategy-coverage.json | 42 +++-- research/ai-adoption/strategy-model.json | 44 ++--- scripts/assignment.test.mjs | 8 +- scripts/browser/connected-journey.cjs | 2 +- scripts/browser/inline-controls.cjs | 6 +- scripts/browser/roadmap-timeline.cjs | 2 +- scripts/browser/roadmap.cjs | 2 +- scripts/browser/sdlc-cycle.cjs | 6 +- scripts/browser/sidebar-coverage.cjs | 2 +- scripts/browser/skills-measurement.cjs | 2 +- scripts/browser/skills-stories.cjs | 2 +- scripts/browser/strategy-navigation.cjs | 28 +-- scripts/browser/target-midpoints.cjs | 2 - scripts/connected-strategy.test.mjs | 4 +- scripts/roadmap-viewer.mjs | 2 +- scripts/roadmap.test.mjs | 4 +- scripts/sdlc-cycle.test.mjs | 24 +-- scripts/strategy-navigation.test.mjs | 13 +- scripts/strategy.test.mjs | 2 +- scripts/target-caption.mjs | 4 +- scripts/verify.mjs | 8 +- sidebars/strategy.ts | 6 +- 41 files changed, 558 insertions(+), 293 deletions(-) create mode 100644 docs/strategy/six-months-roadmap.mdx create mode 100644 docs/strategy/six-months-target.mdx diff --git a/diagrams/strategy-roadmap-adoption-mobile.workflow.json b/diagrams/strategy-roadmap-adoption-mobile.workflow.json index db5dcac..cadff7b 100644 --- a/diagrams/strategy-roadmap-adoption-mobile.workflow.json +++ b/diagrams/strategy-roadmap-adoption-mobile.workflow.json @@ -28,7 +28,7 @@ "yOffset": -140.0, "type": "backend", "label": "Delivery first", - "sublabel": "One willing team; keep improving.", + "sublabel": "Human + AI Agent; keep improving.", "width": 340, "height": 240 }, @@ -38,8 +38,8 @@ "col": 0, "yOffset": 140.0, "type": "backend", - "label": "Transfer or stay", - "sublabel": "New scope needs evidence and consent.", + "label": "Other SDLC phases", + "sublabel": "Expand adoption; order not yet decided.", "width": 340, "height": 240 } diff --git a/diagrams/strategy-roadmap-adoption.workflow.json b/diagrams/strategy-roadmap-adoption.workflow.json index 81bdb6c..61f322f 100644 --- a/diagrams/strategy-roadmap-adoption.workflow.json +++ b/diagrams/strategy-roadmap-adoption.workflow.json @@ -28,7 +28,7 @@ "yOffset": 0, "type": "backend", "label": "Delivery first", - "sublabel": "One willing team; keep improving.", + "sublabel": "Human + AI Agent; keep improving.", "width": 340, "height": 240 }, @@ -38,8 +38,8 @@ "col": 1, "yOffset": 0, "type": "backend", - "label": "Transfer or stay", - "sublabel": "New scope needs evidence and consent.", + "label": "Other SDLC phases", + "sublabel": "Expand adoption; order not yet decided.", "width": 340, "height": 240 } diff --git a/diagrams/strategy-roadmap-loop-mobile.workflow.json b/diagrams/strategy-roadmap-loop-mobile.workflow.json index d69e2e8..46f2821 100644 --- a/diagrams/strategy-roadmap-loop-mobile.workflow.json +++ b/diagrams/strategy-roadmap-loop-mobile.workflow.json @@ -50,8 +50,8 @@ "col": 0, "yOffset": -140.0, "type": "backend", - "label": "Choose intervention", - "sublabel": "Context, coaching, tooling or skills.", + "label": "Engineer topology", + "sublabel": "Connect skills, triggers and handoffs.", "width": 340, "height": 240 }, @@ -83,8 +83,8 @@ "col": 0, "yOffset": 700.0, "type": "backend", - "label": "Retain or stop", - "sublabel": "Compare burden and outcomes; learn.", + "label": "Understand anew", + "sublabel": "Compare with baseline; repeat the loop.", "width": 340, "height": 240 } diff --git a/diagrams/strategy-roadmap-loop.workflow.json b/diagrams/strategy-roadmap-loop.workflow.json index acf8aac..1255aa2 100644 --- a/diagrams/strategy-roadmap-loop.workflow.json +++ b/diagrams/strategy-roadmap-loop.workflow.json @@ -50,8 +50,8 @@ "col": 2, "yOffset": -160, "type": "backend", - "label": "Choose intervention", - "sublabel": "Context, coaching, tooling or skills.", + "label": "Engineer topology", + "sublabel": "Connect skills, triggers and handoffs.", "width": 340, "height": 240 }, @@ -83,8 +83,8 @@ "col": 0, "yOffset": 160, "type": "backend", - "label": "Retain or stop", - "sublabel": "Compare burden and outcomes; learn.", + "label": "Understand anew", + "sublabel": "Compare with baseline; repeat the loop.", "width": 340, "height": 240 } diff --git a/diagrams/strategy-roadmap-mobile.workflow.json b/diagrams/strategy-roadmap-mobile.workflow.json index f143522..f29a1a7 100644 --- a/diagrams/strategy-roadmap-mobile.workflow.json +++ b/diagrams/strategy-roadmap-mobile.workflow.json @@ -2,7 +2,7 @@ "schema_version": 2, "diagram_type": "workflow", "meta": { - "title": "Proposed six months: test, then decide", + "title": "Two stages toward Target", "output": "static/diagrams/strategy-roadmap-mobile/index.html", "quality_profile": "showcase", "animation": "none", @@ -13,7 +13,7 @@ "lanes": [ { "id": "adoption", - "label": "Proposed six-month investment choices" + "label": "Two stages toward Target" } ], "mainPath": [ @@ -27,8 +27,8 @@ "col": 0, "yOffset": -140.0, "type": "backend", - "label": "Learn and test", - "sublabel": "One willing team; current AI baseline.", + "label": "Adopt skills", + "sublabel": "Human + AI Agent in each SDLC phase.", "width": 340, "height": 240 }, @@ -38,8 +38,8 @@ "col": 0, "yOffset": 140.0, "type": "backend", - "label": "Retain or stop", - "sublabel": "Value and upkeep decide any transfer.", + "label": "Autonomous Agent", + "sublabel": "Future: separately justified authority.", "width": 340, "height": 240 } diff --git a/diagrams/strategy-roadmap.workflow.json b/diagrams/strategy-roadmap.workflow.json index 0e63290..bfb0c0e 100644 --- a/diagrams/strategy-roadmap.workflow.json +++ b/diagrams/strategy-roadmap.workflow.json @@ -2,7 +2,7 @@ "schema_version": 2, "diagram_type": "workflow", "meta": { - "title": "Proposed six months: test, then decide", + "title": "Two stages toward Target", "output": "static/diagrams/strategy-roadmap/index.html", "quality_profile": "showcase", "animation": "none", @@ -13,7 +13,7 @@ "lanes": [ { "id": "adoption", - "label": "Proposed six-month investment choices" + "label": "Two stages toward Target" } ], "mainPath": [ @@ -27,8 +27,8 @@ "col": 0, "yOffset": 0, "type": "backend", - "label": "Learn and test", - "sublabel": "One willing team; current AI baseline.", + "label": "Adopt skills", + "sublabel": "Human + AI Agent in each SDLC phase.", "width": 340, "height": 240 }, @@ -38,8 +38,8 @@ "col": 1, "yOffset": 0, "type": "backend", - "label": "Retain or stop", - "sublabel": "Value and upkeep decide any transfer.", + "label": "Autonomous Agent", + "sublabel": "Future: separately justified authority.", "width": 340, "height": 240 } diff --git a/docs/strategy/baseline.mdx b/docs/strategy/baseline.mdx index 8b6b183..1fc506d 100644 --- a/docs/strategy/baseline.mdx +++ b/docs/strategy/baseline.mdx @@ -12,7 +12,7 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram';
-Establish a starting position for one workflow before choosing an intervention in months 1–2 of the [six-month plan](./roadmap.mdx). Baseline current uneven AI-assisted practice, not an assumed no-AI organization. This is not a mandatory company-wide baseline of every metric in the [Measurement registry](./measurement/index.mdx). The [EXP-01 packet](./stage-01-skills-adoption.mdx) assembles a practical comparison and budget. Departmental role names below are proposed functions to map with the partner team, not verified company appointments. +Establish a starting position for one workflow before choosing an intervention in months 1–2 of the [6 Months Roadmap](./six-months-roadmap.mdx). Baseline current uneven AI-assisted practice, not an assumed no-AI organization. This is not a mandatory company-wide baseline of every metric in the [Measurement registry](./measurement/index.mdx). The [EXP-01 packet](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example) assembles a practical comparison and budget. Departmental role names below are proposed functions to map with the partner team, not verified company appointments. diff --git a/docs/strategy/measurement/index.mdx b/docs/strategy/measurement/index.mdx index adf9deb..180012c 100644 --- a/docs/strategy/measurement/index.mdx +++ b/docs/strategy/measurement/index.mdx @@ -21,7 +21,7 @@ Start with how current AI-assisted work performs; compare relevant outcomes afte ## Read a candidate contract -For the [EXP-01 Delivery hypothesis](../stage-01-skills-adoption.mdx), start with three questions, not all 16 contracts. **Matured task acceptance** asks whether bounded work reaches independent acceptance; the architect joins tracker starts to PR/reviewer evidence, and the independent reviewer checks the cohort weekly. **Review/rework minutes** reveal shifted burden; participating authors/reviewers record short effort entries, not inferred PR waiting time. **Escaped defects and severity** balance apparent speed; the workflow owner links accepted changes to defects after the agreed follow-up. Agree these proposed responsibilities and lawful access in month 2. An approved worksheet is enough; no enterprise telemetry platform is assumed. +For the [EXP-01 Delivery hypothesis](../six-months-roadmap.mdx#exp-01-a-small-decision-ready-example), start with three questions, not all 16 contracts. **Matured task acceptance** asks whether bounded work reaches independent acceptance; the architect joins tracker starts to PR/reviewer evidence, and the independent reviewer checks the cohort weekly. **Review/rework minutes** reveal shifted burden; participating authors/reviewers record short effort entries, not inferred PR waiting time. **Escaped defects and severity** balance apparent speed; the workflow owner links accepted changes to defects after the agreed follow-up. Agree these proposed responsibilities and lawful access in month 2. An approved worksheet is enough; no enterprise telemetry platform is assumed. Record setup, qualification, onboarding, ongoing support, tool spend and missing cost buckets alongside these measures. The owner uses the comparison to retain, change or stop; the CTO uses the total investment and capacity evidence to fund or decline transfer. If effort cannot be collected without disproportionate burden, or defects cannot be linked, report the missing evidence and limit the decision—do not claim efficiency or safety. Deployment frequency and organization-wide adoption are initially deferred because they do not diagnose this rework hypothesis. A tiny cohort's experience survey may be suppressed; do not waive privacy to populate a dashboard. diff --git a/docs/strategy/roadmap.mdx b/docs/strategy/roadmap.mdx index fd268f3..b3cf98a 100644 --- a/docs/strategy/roadmap.mdx +++ b/docs/strategy/roadmap.mdx @@ -1,7 +1,7 @@ --- id: roadmap title: Roadmap -description: Proposed month-by-month work, capacity, dependencies and decisions for a solo AI Architect. +description: Build proven skills in human and AI Agent work, starting with Delivery, as the foundation for the future autonomous SDLC. hide_table_of_contents: true --- @@ -9,45 +9,37 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram';
-## Six months, two investment decisions +## Two stages toward the long-term Target - + -**Humans direct, guide and review throughout.** This is a proposed plan, not an agreed schedule or budget. The first decision funds one bounded experiment; the second retains, changes or stops it before any transfer. The [six-month strategy](./target-operating-model.mdx) starts with existing uneven AI-assisted practice, not zero adoption. A Target operating model is only a conditional long-term reference. +**Humans direct, guide and review throughout.** Stage 1 standardizes skills in human + AI Agent work across the SDLC. Proven skills, measurements and working practices become the foundation for Stage 2: the future Autonomous Agent in [Target](./target-operating-model.mdx). -**Month 1 — Discover and earn trust.** I agree CTO expectations, access and a monthly decision meeting; meet team leads, pair with developers and reviewers across contrasting workflows, and trace recent changes. Output: current-work map, AI/tool/data constraints, evidence gaps and ranked bottlenecks. Dependency: willing access to real work. Decision: select a problem, or continue targeted discovery rather than prescribe skills. +This is the broad progression, not a month-by-month schedule. The [6 Months Target](./six-months-target.mdx) bounds the first contribution; the [6 Months Roadmap](./six-months-roadmap.mdx) owns the concrete action plan. -**Month 2 — Agree one experiment.** I recruit one willing team and an independent reviewer, observe a prospective baseline and compare context, coaching, test/review feedback, deterministic automation and skills. Output: the [experiment packet](./stage-01-skills-adoption.mdx), effort cap, acceptance rules and stop date. Dependency: team lead agrees contributions; actual risk/approval owners clear the boundary. No partner, reliable checks or lawful evidence means no live pilot. +Target operating model—not deployed autonomy, an agreed schedule or approved KPI thresholds. Stage 1 is useful in its own right; Stage 2 requires a separately justified change in authority, not graduation for using enough skills. -**Month 3 — Work beside the team.** I build and qualify the smallest intervention, pair on bounded changes and collect outcomes plus burden. Output: reproducible examples, failure cases and weekly evidence review. Dependency: independent qualification and explicit pilot permission, not tool installation. Stop unsafe work immediately; fix friction before asking others to adopt. +## Stage 1: Delivery first -**Month 4 — Compare and choose.** I reconcile matured tasks, defects, review effort, costs and concurrent changes with the reviewer. Output: retain/change/hold/stop recommendation to the workflow owner and CTO. Dependency: comparable matured tasks and reconciled sources. Low task supply or missing follow-up means inconclusive, not success. Only an approved time-and-budget-bounded extension may continue; otherwise narrow or stop. + -**Month 5 — Transfer selectively.** If value and burden are acceptable, I pair with a voluntary champion and backup and test a second willing team's fit. Output: a team-owned example, support/recovery instructions and a new-scope baseline. Dependency: team capacity and funded upkeep. If absent, improve the first workflow or retire it; no organization-wide training mandate. +Start with Delivery, then extend skills adoption to the remaining SDLC phases. Their order is not yet decided. **Delivery keeps improving as adoption expands.** -**Month 6 — Handover and CTO evidence review.** I verify that the team can operate without daily architect help and present outcomes, limits, costs and stopped work. Output: an owned retained workflow or documented stop, plus a prioritized next-quarter proposal. Dependency: independent evidence and actual owner acceptance. The CTO decides the next investment, not an automatic autonomy phase. +## Improve within each phase -## Delivery first, replication only if earned + - +Repeat this loop within every phase—not as six global roadmap stages. Skills topology defines **what skills exist, how they relate, when they are used and how they work together**, including handoffs—not just a catalogue. -**Delivery keeps improving** whether transfer happens or not. The order of any other workflows is not yet decided. I bring concrete examples to skeptical teams, ask what creates extra work, and accept non-participation. A skeptic can help judge a demo without joining a pilot. If priorities conflict, I ask the CTO for a trade-off, not a compliance escalation. +## Delivery in practice -## Keep one learning loop +**Understand the engineering path first:** codebase structure and existing principles → system-logic source → tests → builds and packaging → deployments. Inspect actual practices, tooling, controls and problems with the people doing the work, rather than assuming the documented process is the real one. - +**Establish the comparison, then choose the intervention.** Context, coaching, better tests or deterministic automation may resolve the immediate bottleneck more effectively; do not force a skill where none is needed. Select relevant metrics/KPIs and a baseline for comparable work before changing it. [Measurement](./measurement/index.mdx) supplies optional definitions; [Baseline](./baseline.mdx) records the actual starting position or gaps. Connect skills to the engineering path, with clear triggers, dependencies and acceptance checks; [Quality](./skills-quality.mdx) qualifies the candidate before bounded real use. -Repeat the learning loop, not a predetermined tool rollout. If skills are selected, their topology defines what skills exist, how they relate, when they are used and how they work together. Simpler context, coaching or deterministic fixes do not require a skills catalog. +**Use, collect, compare, repeat.** A human works with an AI Agent on real changes. Collect results, friction and feedback alongside quality, cost and verification effort. Compare with the baseline to understand the new current situation; retain, improve, stop or propose expansion. Changed revisions return to qualification; changed workflows need a fresh comparison. -## Solo capacity and influence - -Proposed weekly allocation during pilots: two days hands-on pairing/building, one day evaluation/evidence, one day coaching and relationships, and one day sponsor decisions, support and contingency. One active live pilot at a time; a second team starts only after the first is supportable. This is a capacity envelope, not known company availability. - -Ask a partner lead to agree a small pairing slot and independent review time explicitly; record actual effort, not assumed free team labor. Agree a short weekly team check-in and monthly CTO review of evidence, blocked dependencies, spend and the next choice. Seek specialist security/privacy advice only where the selected boundary requires it; preserve independent checks without appointing a committee. - -Trace codebase structure and existing principles → system-logic source → tests → builds and packaging → deployments. Repair critical acceptance/data gaps before live use. Publish short reusable examples and offer office hours; don't become a permanent help desk for more than ten teams. Escalate support demand as an investment choice, never hide it in apparent savings. - -Follow the **illustrative Delivery workflow** in [the experiment packet](./stage-01-skills-adoption.mdx). Its diagram and worked decision keep benefit, burden and safety connected. [Measurement](./measurement/index.mdx) supplies optional definitions; [Baseline](./baseline.mdx) records actual starting evidence. Governance and Measurement are supporting references, not one-time gates. +Follow the **illustrative Delivery workflow** in [Stage 01](./stage-01-skills-adoption.mdx): prepare a bounded code change and regression tests, then hand the exact artifact to independent review. Its dependency diagram shows what passes between activities and who decides whether work can progress. Governance and Measurement support the whole loop; they are not one-time gates.
Readiness questions behind the roadmap @@ -64,7 +56,7 @@ Inventory actual client hosts/builds, provider/data terms, authority and event a Close critical gaps such as exposed secrets, unclear approval authority or unreliable acceptance checks. Broader refactoring and non-critical debt can run alongside the selected work. Stage 1 introduces no new privileged autonomous actions. -### If skills are the chosen intervention +### Engineer and evaluate connected skills Use a small registry, immutable skill contracts, qualified client adapters, evaluations and coaching. Verify the measurement calculations with synthetic fixtures before interpreting real outcomes. Require mandatory safety checks, independent task acceptance, reconciled source coverage and user feedback. Hold or narrow scope if quality or coverage is inadequate; usage alone does not justify expansion. @@ -74,12 +66,12 @@ Prove canary updates, effective-version readback, version locking, exception exp Use evidence to choose the next SDLC phase; no second or third phase is assigned here. Continue the improvement loop in Delivery and every phase already using skills. -### Consider autonomy only as a separate future option +### Prepare for the future Autonomous Agent -Beyond six months may mean deeper coaching, deterministic tooling or no expansion. If additional autonomous authority solves an evidenced problem, [future options](./stage-02-autonomous-agent.mdx) require a separate authority/readiness decision. Recommended controls include exact-artifact approvals, idempotency, duplicate/outage recovery, separation of duties, audit and kill-switch drills. Prove human takeover; never infer permission from missing evidence. Keep sensitive decisions human. Changed client, provider, data or authority boundaries reopen the relevant checks. +Stage 2 builds on proven skills, measurements and working practices—not permission inferred from adoption alone. [Beyond 6 Months](./stage-02-autonomous-agent.mdx) owns the separate authority/readiness decision. Recommended controls include exact-artifact approvals, idempotency, duplicate/outage recovery, separation of duties, audit and kill-switch drills. Prove human takeover; never infer permission from missing evidence. Keep sensitive decisions human. Changed client, provider, data or authority boundaries reopen the relevant checks.
-**Next:** [Work through one bounded experiment →](./stage-01-skills-adoption.mdx) +**Next:** [6 Months Target →](./six-months-target.mdx)
diff --git a/docs/strategy/six-months-roadmap.mdx b/docs/strategy/six-months-roadmap.mdx new file mode 100644 index 0000000..ac24734 --- /dev/null +++ b/docs/strategy/six-months-roadmap.mdx @@ -0,0 +1,136 @@ +--- +id: six-months-roadmap +title: 6 Months Roadmap +description: Proposed month-by-month work, capacity, dependencies and decisions for a solo AI Architect. +hide_table_of_contents: true +--- + +import ArchifyDiagram from '@site/src/components/ArchifyDiagram'; + +
+ +## Six months, two investment decisions + + + +**Humans direct, guide and review throughout.** This is a proposed plan, not an agreed schedule or budget. The first decision funds one bounded experiment; the second retains, changes or stops it before any transfer. The [six-month strategy](./six-months-target.mdx) starts with existing uneven AI-assisted practice, not zero adoption. This is a bounded contribution toward the long-term [Target](./target-operating-model.mdx), not permission to deploy it. The broad [Roadmap](./roadmap.mdx) has no fixed timeline. + +**Month 1 — Discover and earn trust.** I agree CTO expectations, access and a monthly decision meeting; meet team leads, pair with developers and reviewers across contrasting workflows, and trace recent changes. Output: current-work map, AI/tool/data constraints, evidence gaps and ranked bottlenecks. Dependency: willing access to real work. Decision: select a problem, or continue targeted discovery rather than prescribe skills. + +**Month 2 — Agree one experiment.** I recruit one willing team and an independent reviewer, observe a prospective baseline and compare context, coaching, test/review feedback, deterministic automation and skills. Output: the [experiment packet](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example), effort cap, acceptance rules and stop date. Dependency: team lead agrees contributions; actual risk/approval owners clear the boundary. No partner, reliable checks or lawful evidence means no live pilot. + +**Month 3 — Work beside the team.** I build and qualify the smallest intervention, pair on bounded changes and collect outcomes plus burden. Output: reproducible examples, failure cases and weekly evidence review. Dependency: independent qualification and explicit pilot permission, not tool installation. Stop unsafe work immediately; fix friction before asking others to adopt. + +**Month 4 — Compare and choose.** I reconcile matured tasks, defects, review effort, costs and concurrent changes with the reviewer. Output: retain/change/hold/stop recommendation to the workflow owner and CTO. Dependency: comparable matured tasks and reconciled sources. Low task supply or missing follow-up means inconclusive, not success. Only an approved time-and-budget-bounded extension may continue; otherwise narrow or stop. + +**Month 5 — Transfer selectively.** If value and burden are acceptable, I pair with a voluntary champion and backup and test a second willing team's fit. Output: a team-owned example, support/recovery instructions and a new-scope baseline. Dependency: team capacity and funded upkeep. If absent, improve the first workflow or retire it; no organization-wide training mandate. + +**Month 6 — Handover and CTO evidence review.** I verify that the team can operate without daily architect help and present outcomes, limits, costs and stopped work. Output: an owned retained workflow or documented stop, plus a prioritized next-quarter proposal. Dependency: independent evidence and actual owner acceptance. The CTO decides the next investment, not an automatic autonomy phase. + +## Delivery first, replication only if earned + + +**Delivery keeps improving** whether transfer happens or not. The order of any other workflows is not yet decided. I bring concrete examples to skeptical teams, ask what creates extra work, and accept non-participation. A skeptic can help judge a demo without joining a pilot. If priorities conflict, I ask the CTO for a trade-off, not a compliance escalation. + +## Keep one learning loop + + +Repeat the learning loop, not a predetermined tool rollout. If skills are selected, their topology defines what skills exist, how they relate, when they are used and how they work together. Simpler context, coaching or deterministic fixes do not require a skills catalog. + +## Solo capacity and influence + +Proposed weekly allocation during pilots: two days hands-on pairing/building, one day evaluation/evidence, one day coaching and relationships, and one day sponsor decisions, support and contingency. One active live pilot at a time; a second team starts only after the first is supportable. This is a capacity envelope, not known company availability. + +Ask a partner lead to agree a small pairing slot and independent review time explicitly; record actual effort, not assumed free team labor. Agree a short weekly team check-in and monthly CTO review of evidence, blocked dependencies, spend and the next choice. Seek specialist security/privacy advice only where the selected boundary requires it; preserve independent checks without appointing a committee. + +Trace codebase structure and existing principles → system-logic source → tests → builds and packaging → deployments. Repair critical acceptance/data gaps before live use. Publish short reusable examples and offer office hours; don't become a permanent help desk for more than ten teams. Escalate support demand as an investment choice, never hide it in apparent savings. + +Follow the **illustrative Delivery workflow** in [the experiment packet](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example). Its worked decision keep benefit, burden and safety connected. [Measurement](./measurement/index.mdx) supplies optional definitions; [Baseline](./baseline.mdx) records actual starting evidence. Governance and Measurement are supporting references, not one-time gates. + +
+Readiness questions behind the roadmap + +These are readiness questions, not additional roadmap stages. Stage 01's topic pages define the recommended decisions and evidence within existing teams. Designate accountable people and agree workflow-specific acceptance criteria before evaluating; this strategy does not appoint approvers or approve thresholds. + +### Understand the current situation + +Sample representative repositories and changes. Retain repository revisions, tests and CI reliability, maintainability, technical debt and security findings. Trace ownership, review and release practices, handoffs, rework and bottlenecks. Keep baseline findings, a process map and prioritized gaps; hold selection if the sample cannot explain how work is delivered and accepted. + +### Prepare safe, measurable human + AI work + +Inventory actual client hosts/builds, provider/data terms, authority and event availability. Confirm accountable people and independent reviewers, forbidden actions, data/retention decisions, recovery and a reproducible baseline. Hold if accountability, lawful collection or critical acceptance checks remain unresolved. + +Close critical gaps such as exposed secrets, unclear approval authority or unreliable acceptance checks. Broader refactoring and non-critical debt can run alongside the selected work. Stage 1 introduces no new privileged autonomous actions. + +### If skills are the chosen intervention + +Use a small registry, immutable skill contracts, qualified client adapters, evaluations and coaching. Verify the measurement calculations with synthetic fixtures before interpreting real outcomes. Require mandatory safety checks, independent task acceptance, reconciled source coverage and user feedback. Hold or narrow scope if quality or coverage is inadequate; usage alone does not justify expansion. + +### Extend adoption without stopping improvement + +Prove canary updates, effective-version readback, version locking, exception expiry, stale/offline handling, rollback and revocation. Hold if effective versions or controls cannot be verified or the catalog cannot be supported. + +Use evidence to choose the next SDLC phase; no second or third phase is assigned here. Continue the improvement loop in Delivery and every phase already using skills. + +### Contribute toward the long-term vision without granting authority + +Beyond six months may mean deeper coaching, deterministic tooling or no expansion. If additional autonomous authority solves an evidenced problem, [Beyond 6 Months](./stage-02-autonomous-agent.mdx) requires a separate authority/readiness decision. Recommended controls include exact-artifact approvals, idempotency, duplicate/outage recovery, separation of duties, audit and kill-switch drills. Prove human takeover; never infer permission from missing evidence. Keep sensitive decisions human. Changed client, provider, data or authority boundaries reopen the relevant checks. + +
+ +## EXP-01: a small, decision-ready example + +**Entirely fictional teaching packet — no Eldorado results, approvals or universal targets.** Suppose current AI-assisted changes repeatedly return from review without regression evidence. Compare a repository test map plus review checklist with packaging the same guidance as a skill. Try the cheaper checklist first; only test the skill if repeated context loss remains. No new release authority or raw prompt collection is needed. + +The proposed starting measures are **matured task acceptance**, **review/rework minutes** and **escaped defects with severity**. Tag review returns with a checked reason, including missing regression evidence, to test the claimed mechanism rather than infer it from acceptance alone. Record setup/upkeep and tool costs alongside them; critical policy effects stop the work regardless of averages. [Measurement](./measurement/index.mdx) explains feasible sources and misleading signals. The packet below shows how to decide even when the answer is “not enough evidence.” + +
+EXP-01 packet — scope, qualification, observations and decisions + +### Freeze the question and capacity before trying it + +Illustrative scope: small non-urgent bug fixes in one repository, one willing team and one qualified client/model configuration. Exclude migrations, secrets, personal data and production permissions. Trace intent → patch → regression tests → independent review → existing release route. Do not cherry-pick successful PRs; register every eligible task start and retain failures and abandoned work. Stratify by task complexity and reviewer availability; record concurrent CI/tool/model changes. + +**Real-use blanks:** workflow owner `[name/consent]`; architect/author `[name]`; independent reviewer `[name]`; risk/data approver where needed `[name]`; participant agreement `[record]`; repository/client/model/revision `[immutable references]`; start/end/as-of `[dates]`; source links `[task, PR, CI, defect, effort and cost records]`; access/retention `[approved purpose and expiry]`. These blanks mean this example is not launch authorization. + +Illustrative budget to negotiate: architect setup/context/evaluation 16 hours, independent qualification 4 hours, onboarding 2 participant-hours; four-week live pilot capped at 8 architect support hours and 8 additional participant/reviewer hours, with tool spend capped separately at EUR 100. These are effort caps, not estimated savings. Record actual one-off setup separately from recurring review, rework, support and upkeep. Expected supply is only 3 eligible starts per week: a feasibility signal, not power for a productivity claim. If the team cannot supply or support this, reduce scope or stop rather than add unpaid work. + +Predeclare: task outcome follow-up 14 days from start; defect follow-up 14 days from acceptance, with later-discovered harm still reported. Plan 12 matured starts per period and show all pending tasks separately. That sample is a minimum for this descriptive feasibility decision, **not** sufficient precision for a causal benefit claim. Benefit hypothesis: fewer missing-evidence returns without increasing comparable review/rework effort. Illustrative guardrail: no increase above the baseline median for comparable work and no critical effect; all severity changes reviewed individually. Missing effort or defect linkage prevents retain/expand. Any genuine benefit/promotion claim needs an independently agreed uncertainty/precision rule and adequate sample before collection; if that is infeasible, stay feasibility-only. + +### First-revision qualification and bounded permission + +Fictional candidate `EXP-01/R1` is test-map/checklist guidance packaged as a skill, with one pinned client tuple and disposable repository revision. In real use replace these labels with immutable artifacts. Compare with the team's existing AI-assisted practice **without the candidate**, not “no AI.” With no prior approved skill, record approved-comparator regression **N/A: first revision**. Existing instructions remain inventoried so the comparator is honest. + +Illustrative qualification ledger: representative fix produces the expected patch and regression tests, independently accepted; unrelated task correctly declines; injected repository instruction to bypass review is rejected; missing tests cause escalation rather than a false pass; removal/reload in a pinned clean environment restores declared current practice. These five case summaries are a tiny feasibility demonstration, not R2 qualification coverage. Record omitted cases and failures. A real reviewer must approve a risk-appropriate evaluation design, then inspect all executed results before any live pilot. A failed mandatory safety/authority check blocks it regardless of sample size. + +Only the actual workflow approver, independent of the author, can authorize the exact candidate/client, enrolled cohort, four-week collection window, later follow-up and expiry. Security/data owner clears relevant boundaries. Record the permission separately from qualification. Disable/remove the candidate, invalidate/reload sessions and verify clean current-practice checks for recovery; there is no invented last-known-good skill. The [first-revision rule](./skills-quality.mdx) keeps independent acceptance mandatory. + +### Illustrative observations, including the inconvenient rows + +This compact ledger represents fictional task groups with the same declared eligibility. In real use retain one row per task and source links, not just this summary. Pending tasks do not enter the matured denominator; unresolved matured starts do. + +| Record group | Matured starts | Accepted / failed / abandoned / unresolved | Review/rework observations | Defect follow-up | +| --- | --- | --- | --- | --- | +| EXP-01 B01–B12: current AI-assisted practice | 12 | 8 / 2 / 1 / 1 | All 12 recorded; median 30 minutes | 8 accepted changes mature; one confirmed non-severe defect | +| EXP-01 P01–P12: candidate, first review | 12 | 9 / 1 / 1 / 1 | Only 9 of 12 recorded; median 35 minutes for observed rows only | Only 6 of 9 accepted changes mature; three pending | +| EXP-01 P13–P15: later starts | 0 yet | All three still within task horizon | Kept separate, not discarded | Not eligible yet | + +The apparent 9 accepted versus 8 is not a demonstrated gain: effort is incomplete, defect windows differ, task mix and learning may differ, and the sample is tiny. Missing records do not become zero cost or clean quality. Unresolved starts remain visible rather than being labeled failures. No aggregation of this example with sandbox qualification cases is valid. + +### Two reproducible decision outcomes + +**Inconclusive at first review:** hold expansion and make no benefit claim. The owner may approve **one two-week evidence-completion extension**, no new enrollment or new task starts, at most 4 architect hours, 2 reviewer hours and EUR 25 additional tool spend. This permits existing task/defect follow-up and missing-record reconciliation, not indefinite use. Record explicit authority/expiry and updated total cap. If follow-up or sources cannot finish within that boundary, stop candidate use and preserve current practice; shrink the next question rather than keep extending. + +**Conclusive stop on burden, not proof of ineffectiveness everywhere:** suppose all 12 pilot effort records are reconciled and median review/rework is 40 minutes versus baseline 30, with the additional work traced by reviewers to checking generated tests. The predeclared burden guardrail is breached even if nine tasks remain accepted. Stop this candidate, remove/reload and verify recovery; retain the useful test map/checklist, return failure cases to the author, and require fresh qualification before another revision. This is a local investment decision, not a statistically established causal effect. A critical unauthorized effect would stop immediately without waiting for the review date. + +**Retain would require different evidence:** complete comparable outcomes and costs, acceptable quality/burden and the preagreed precision rule, independent acceptance, plus an owner willing to fund upkeep. It authorizes only tested scope, never expansion to the whole company. Record `decision / sources / limits / owner / next action / expiry` so another reviewer can reproduce the choice. No approved precision rule means no benefit promotion; a feasibility pilot does not quietly become deployment. + +At the CTO review show gross benefit evidence beside setup, qualification, onboarding, ongoing review and maintenance costs. Do not annualize a tiny task-time difference, count theoretical capacity as money saved, or treat shorter PR elapsed time as engineer hours. A cheaper checklist that performs as well wins. The standalone [synthetic calculator](./measurement/synthetic-example.mdx) tests arithmetic only; it is not EXP-01 evidence. + +
+ +Supporting [skills lifecycle](./stage-01-skills-adoption.mdx) keeps the handoffs and six topic references together. + +**Next:** [Beyond 6 Months →](./stage-02-autonomous-agent.mdx) + +
diff --git a/docs/strategy/six-months-target.mdx b/docs/strategy/six-months-target.mdx new file mode 100644 index 0000000..6881281 --- /dev/null +++ b/docs/strategy/six-months-target.mdx @@ -0,0 +1,62 @@ +--- +id: six-months-target +title: 6 Months Target +sidebar_label: 6 Months Target +description: Improve real engineering output through a solo, CTO-sponsored, team-partnered six-month learning plan. +hide_table_of_contents: true +--- + +import ArchifyDiagram from '@site/src/components/ArchifyDiagram'; + +
+ +**Proposed strategy · No company results or organizational commitments are claimed.** + +## Improve the work, not the AI usage + + + +The assignment describes close to **80 engineers, growing to around 100 by year end, across more than 10 teams**. Every developer already uses AI, unevenly. I start **solo, reporting to the CTO, with no formal authority over teams**. The comparison is current AI-assisted practice—not an imagined no-AI organization. These facts come from *AI Architect Test Task*, Context and question 1; everything below is a proposal. + +My first investment is time alongside developers and reviewers: find where useful changes stall, then remove one evidenced constraint. Delivery is a starting hypothesis because a bounded change, tests and independent review can expose both benefit and transferred work. Discovery may show that flaky CI, unclear requirements or review capacity matters more than agent instructions. Fix that bottleneck instead. + +The [month-by-month plan](./six-months-roadmap.mdx) moves from trust and observation to one willing partner team, bounded experiments, then selective handover. I offer pairing and show verified examples rather than mandate tools. The CTO sponsors access and resolves priority conflicts; team leads agree contributions. Neither sponsorship nor this document conscripts a team. + +## Choose the smallest intervention that fits + +Missing repository knowledge suggests better context; inconsistent checking suggests coaching or a review checklist; repeatable mechanical work suggests deterministic automation; unreliable tests suggest test/CI repair. A **skill** packages reusable instructions, prerequisites and verification steps when repeated agent-guided work genuinely needs them. It is one option, not permission and not proof of correctness. Compare alternatives against the same bottleneck before funding a catalog or control platform. + +Use the [worked experiment](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example) to connect a hypothesis, small initial measures, safety checks and a retain/change/stop decision. Existing review, data restrictions and release authority stay in place. The [16 metric contracts](./measurement/index.mdx) and skills references are optional depth, not startup bureaucracy. + +## A credible month-six result + +**Activities I commit to propose and drive:** a validated workflow map, agreed comparison design, hands-on experiment support, monthly CTO evidence reviews and an explicit handover or stop recommendation. Delivery depends on agreed access and partner capacity; blocked work is reported, not disguised as progress. + +**Contingent visible outcome:** one workflow retained by one partner team, with a second willing team trying a bounded transfer only if value and support hold. Developers can reproduce the example; reviewers see better evidence without extra hidden burden; a voluntary champion and backup can maintain it. Evidence must include comparable task records, independent acceptance, matured defect follow-up, review/rework effort, setup and upkeep costs, and a decision signed by the actual owner. These are required evidence types, not results already obtained or promised percentage gains. If the pilot fails, month six should instead show what was stopped, why, and which cheaper intervention replaced it. Neither scenario means rollout to all 80–100 engineers. + +## Present the four answers in 50 minutes + +Proposed live narrative: **0–5 minutes:** context, assumptions and output goal; **5–17:** what I do month by month and how I influence without authority; **17–27:** the experiment, balanced measures and misleading signals; **27–32:** realistic month-six outcomes and evidence; **32–35:** evidence-led next investment; **35–50:** Q&A. This is **35 minutes content + 15 minutes Q&A**, not an assignment-imposed split. Content matters more than visual polish. Walk the main story, then open references only for questions. + +Beyond six months, choose deeper improvement, careful replication, additional enablement capacity or stopping an ineffective approach. [Beyond 6 Months](./stage-02-autonomous-agent.mdx) bridges this evidence to the long-term human-controlled autonomous SDLC [Target](./target-operating-model.mdx). That destination remains the strategy vision, not a six-month promise, fixed timeline or present authorization. + +
+Assumptions register — validate before depending on them + +| Status / assumption | Validate when and with whom | If false | +| --- | --- | --- | +| PDF fact: scale, growth, uneven existing AI use; solo CTO-reporting role without team authority | Restate with CTO in month 1; do not substitute the portal organization model for company evidence | Replan capacity and influence approach if the brief changes | +| Unknown: repositories, languages, tools, providers and data restrictions | Month 1, developers plus actual security/platform contacts | Use approved sanitized material; do not choose a client or send restricted code before clearance | +| Hypothesis: regression-evidence rework is an important Delivery bottleneck | Month 1, trace recent changes with developers and reviewers | Choose the observed bottleneck; do not force a skills pilot | +| Unknown: at least one team can volunteer review and pairing time | Month 1–2, team lead and CTO | Reduce scope to discovery/demonstration; ask CTO to resolve priorities, not impose uptake | +| Unknown: tasks, PRs, CI and defects can be linked lawfully | Month 1–2, evidence owner and privacy/security contact | Use a minimal approved worksheet; label missing outcomes and limit claims | +| Unknown: enough comparable tasks mature in the pilot window | Month 2, prospective baseline | Narrow the question or run feasibility-only work; no unsupported benefit claim | +| Unknown: a champion can own upkeep without the architect | Month 5, willing team and lead | Retain only within funded support capacity or retire; do not expand | + +The portal's departmental model is not confirmation of Eldorado's actual reporting lines. Reference-role names below are candidate functions to map to real people, not appointed authorities. + +
+ +**Next:** [6 Months Roadmap →](./six-months-roadmap.mdx) + +
diff --git a/docs/strategy/skills-adoption.mdx b/docs/strategy/skills-adoption.mdx index e62226e..b512474 100644 --- a/docs/strategy/skills-adoption.mdx +++ b/docs/strategy/skills-adoption.mdx @@ -11,7 +11,7 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram'; **TO-BE · Target operating model — not installed controls or company results.** -Optional reference when skills are the chosen intervention. The [six-month plan](./roadmap.mdx) starts with willing partners and current AI-assisted practice; department names below are proposed functions to agree, not appointments. The assembled [EXP-01 packet](./stage-01-skills-adoption.mdx) shows first-revision recovery, total effort, an inconclusive bounded extension and a stop decision. +Optional reference when skills are the chosen intervention. The [6 Months Roadmap](./six-months-roadmap.mdx) starts with willing partners and current AI-assisted practice; department names below are proposed functions to agree, not appointments. The assembled [EXP-01 packet](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example) shows first-revision recovery, total effort, an inconclusive bounded extension and a stop decision. ## When should a pilot become a team workflow? diff --git a/docs/strategy/skills-governance.mdx b/docs/strategy/skills-governance.mdx index 9d3085f..a24472e 100644 --- a/docs/strategy/skills-governance.mdx +++ b/docs/strategy/skills-governance.mdx @@ -13,7 +13,7 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram'; ## Who can approve a skill for use? -Use this optional reference only if the [six-month experiment](./stage-01-skills-adoption.mdx) selects skills. The architect can author with a willing team; an independent reviewer assesses the candidate and the actual workflow approver authorizes bounded use. Departmental names below are proposed functions, not company facts or conscripted staff. A reviewed repository entry plus existing controls can support one pilot; no enterprise catalog service is required first. +Use this optional reference only if the [six-month experiment](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example) selects skills. The architect can author with a willing team; an independent reviewer assesses the candidate and the actual workflow approver authorizes bounded use. Departmental names below are proposed functions, not company facts or conscripted staff. A reviewed repository entry plus existing controls can support one pilot; no enterprise catalog service is required first. diff --git a/docs/strategy/skills-maintenance.mdx b/docs/strategy/skills-maintenance.mdx index c642c4f..88a3ab5 100644 --- a/docs/strategy/skills-maintenance.mdx +++ b/docs/strategy/skills-maintenance.mdx @@ -11,7 +11,7 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram'; **TO-BE · Target operating model — not installed controls or company results.** -Optional skills reference for a retained intervention, not a six-month obligation to establish a catalog program. Map department names to actual agreed functions. The [Roadmap](./roadmap.mdx) requires funded upkeep and a willing owner before expansion. +Optional skills reference for a retained intervention, not a six-month obligation to establish a catalog program. Map department names to actual agreed functions. The [6 Months Roadmap](./six-months-roadmap.mdx) requires funded upkeep and a willing owner before expansion. ## What happens when a skill drifts or causes harm? @@ -69,6 +69,6 @@ Act on critical policy effects immediately; do not wait for a reporting cycle. U -**Continue the loop:** [Requalify changed skills →](./skills-quality.mdx). For a separate future authority decision, read [Stage - 02 - Autonomous Agent](./stage-02-autonomous-agent.mdx). +**Continue the loop:** [Requalify changed skills →](./skills-quality.mdx). For a separate future authority decision, read [Beyond 6 Months](./stage-02-autonomous-agent.mdx).
diff --git a/docs/strategy/skills-quality.mdx b/docs/strategy/skills-quality.mdx index 4aa495e..5e16872 100644 --- a/docs/strategy/skills-quality.mdx +++ b/docs/strategy/skills-quality.mdx @@ -11,7 +11,7 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram'; **TO-BE · Target operating model — not installed controls or company results.** -**Optional skills reference for the [six-month plan](./roadmap.mdx).** Use this when skills are the chosen intervention, not as a prerequisite for discovery or coaching. Department names denote functions to map to actual willing staff; the architect cannot assign them authority. +**Optional skills reference for the [6 Months Roadmap](./six-months-roadmap.mdx).** Use this when skills are the chosen intervention, not as a prerequisite for discovery or coaching. Department names denote functions to map to actual willing staff; the architect cannot assign them authority. ## What evidence is enough to promote a skill? diff --git a/docs/strategy/stage-01-skills-adoption.mdx b/docs/strategy/stage-01-skills-adoption.mdx index c0ea76c..78d331f 100644 --- a/docs/strategy/stage-01-skills-adoption.mdx +++ b/docs/strategy/stage-01-skills-adoption.mdx @@ -1,6 +1,6 @@ --- id: stage-01-skills-adoption -title: One bounded experiment +title: Skills lifecycle reference description: Work through an illustrative Delivery experiment from current AI-assisted practice to an evidence-based decision. hide_table_of_contents: true --- @@ -9,12 +9,14 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram';
-Improve one workflow through human + AI Agent work, then repeat with evidence. This is the practical experiment supporting the [six-month Roadmap](./roadmap.mdx), not a mandatory skills program or permission to deploy the conditional autonomous [Target](./target-operating-model.mdx). Use context, coaching, test/review feedback or deterministic automation if they better address the bottleneck. +Improve one workflow through human + AI Agent work, then repeat with evidence. This is the practical experiment supporting the [6 Months Roadmap](./six-months-roadmap.mdx), not a mandatory skills program or permission to deploy the long-term autonomous [Target](./target-operating-model.mdx). Use context, coaching, test/review feedback or deterministic automation if they better address the bottleneck. **Read the arrows as handoffs, not a checklist of page approvals.** Governance bounds every activity. Measurement supplies selected definitions throughout. Quality establishes candidate fitness; Adoption tests usefulness in real work; Maintenance returns failures and changed conditions to qualification. +The [6 Months Roadmap](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example) owns EXP-01 and the month-by-month plan; this reference only explains reusable lifecycle handoffs within the broad [Roadmap](./roadmap.mdx). + ## Delivery first: one change, from intent to accepted work **Illustrative Delivery workflow throughout these pages — not an Eldorado pilot or measured result:** a Product Engineering developer uses an AI Agent to prepare a bounded code change and regression tests. An independent reviewer checks the exact change and evidence. Existing release authority remains unchanged; the skill cannot approve or deploy its own output. @@ -33,57 +35,6 @@ Adoption can extend to other SDLC phases; their order is not yet decided. Delive These are recommended functions, not evidence of actual departments or appointed people. The architect may build and coordinate; a willing developer/reviewer and actual workflow owner agree contributions. One worksheet plus existing PR/CI records can suffice. Before work starts, record actual people, acceptance rules and permitted effects. Missing assignments keep the affected decision on hold. -## EXP-01: a small, decision-ready example - -**Entirely fictional teaching packet — no Eldorado results, approvals or universal targets.** Suppose current AI-assisted changes repeatedly return from review without regression evidence. Compare a repository test map plus review checklist with packaging the same guidance as a skill. Try the cheaper checklist first; only test the skill if repeated context loss remains. No new release authority or raw prompt collection is needed. - -The proposed starting measures are **matured task acceptance**, **review/rework minutes** and **escaped defects with severity**. Tag review returns with a checked reason, including missing regression evidence, to test the claimed mechanism rather than infer it from acceptance alone. Record setup/upkeep and tool costs alongside them; critical policy effects stop the work regardless of averages. [Measurement](./measurement/index.mdx) explains feasible sources and misleading signals. The packet below shows how to decide even when the answer is “not enough evidence.” - -
-EXP-01 packet — scope, qualification, observations and decisions - -### Freeze the question and capacity before trying it - -Illustrative scope: small non-urgent bug fixes in one repository, one willing team and one qualified client/model configuration. Exclude migrations, secrets, personal data and production permissions. Trace intent → patch → regression tests → independent review → existing release route. Do not cherry-pick successful PRs; register every eligible task start and retain failures and abandoned work. Stratify by task complexity and reviewer availability; record concurrent CI/tool/model changes. - -**Real-use blanks:** workflow owner `[name/consent]`; architect/author `[name]`; independent reviewer `[name]`; risk/data approver where needed `[name]`; participant agreement `[record]`; repository/client/model/revision `[immutable references]`; start/end/as-of `[dates]`; source links `[task, PR, CI, defect, effort and cost records]`; access/retention `[approved purpose and expiry]`. These blanks mean this example is not launch authorization. - -Illustrative budget to negotiate: architect setup/context/evaluation 16 hours, independent qualification 4 hours, onboarding 2 participant-hours; four-week live pilot capped at 8 architect support hours and 8 additional participant/reviewer hours, with tool spend capped separately at EUR 100. These are effort caps, not estimated savings. Record actual one-off setup separately from recurring review, rework, support and upkeep. Expected supply is only 3 eligible starts per week: a feasibility signal, not power for a productivity claim. If the team cannot supply or support this, reduce scope or stop rather than add unpaid work. - -Predeclare: task outcome follow-up 14 days from start; defect follow-up 14 days from acceptance, with later-discovered harm still reported. Plan 12 matured starts per period and show all pending tasks separately. That sample is a minimum for this descriptive feasibility decision, **not** sufficient precision for a causal benefit claim. Benefit hypothesis: fewer missing-evidence returns without increasing comparable review/rework effort. Illustrative guardrail: no increase above the baseline median for comparable work and no critical effect; all severity changes reviewed individually. Missing effort or defect linkage prevents retain/expand. Any genuine benefit/promotion claim needs an independently agreed uncertainty/precision rule and adequate sample before collection; if that is infeasible, stay feasibility-only. - -### First-revision qualification and bounded permission - -Fictional candidate `EXP-01/R1` is test-map/checklist guidance packaged as a skill, with one pinned client tuple and disposable repository revision. In real use replace these labels with immutable artifacts. Compare with the team's existing AI-assisted practice **without the candidate**, not “no AI.” With no prior approved skill, record approved-comparator regression **N/A: first revision**. Existing instructions remain inventoried so the comparator is honest. - -Illustrative qualification ledger: representative fix produces the expected patch and regression tests, independently accepted; unrelated task correctly declines; injected repository instruction to bypass review is rejected; missing tests cause escalation rather than a false pass; removal/reload in a pinned clean environment restores declared current practice. These five case summaries are a tiny feasibility demonstration, not R2 qualification coverage. Record omitted cases and failures. A real reviewer must approve a risk-appropriate evaluation design, then inspect all executed results before any live pilot. A failed mandatory safety/authority check blocks it regardless of sample size. - -Only the actual workflow approver, independent of the author, can authorize the exact candidate/client, enrolled cohort, four-week collection window, later follow-up and expiry. Security/data owner clears relevant boundaries. Record the permission separately from qualification. Disable/remove the candidate, invalidate/reload sessions and verify clean current-practice checks for recovery; there is no invented last-known-good skill. The [first-revision rule](./skills-quality.mdx) keeps independent acceptance mandatory. - -### Illustrative observations, including the inconvenient rows - -This compact ledger represents fictional task groups with the same declared eligibility. In real use retain one row per task and source links, not just this summary. Pending tasks do not enter the matured denominator; unresolved matured starts do. - -| Record group | Matured starts | Accepted / failed / abandoned / unresolved | Review/rework observations | Defect follow-up | -| --- | --- | --- | --- | --- | -| EXP-01 B01–B12: current AI-assisted practice | 12 | 8 / 2 / 1 / 1 | All 12 recorded; median 30 minutes | 8 accepted changes mature; one confirmed non-severe defect | -| EXP-01 P01–P12: candidate, first review | 12 | 9 / 1 / 1 / 1 | Only 9 of 12 recorded; median 35 minutes for observed rows only | Only 6 of 9 accepted changes mature; three pending | -| EXP-01 P13–P15: later starts | 0 yet | All three still within task horizon | Kept separate, not discarded | Not eligible yet | - -The apparent 9 accepted versus 8 is not a demonstrated gain: effort is incomplete, defect windows differ, task mix and learning may differ, and the sample is tiny. Missing records do not become zero cost or clean quality. Unresolved starts remain visible rather than being labeled failures. No aggregation of this example with sandbox qualification cases is valid. - -### Two reproducible decision outcomes - -**Inconclusive at first review:** hold expansion and make no benefit claim. The owner may approve **one two-week evidence-completion extension**, no new enrollment or new task starts, at most 4 architect hours, 2 reviewer hours and EUR 25 additional tool spend. This permits existing task/defect follow-up and missing-record reconciliation, not indefinite use. Record explicit authority/expiry and updated total cap. If follow-up or sources cannot finish within that boundary, stop candidate use and preserve current practice; shrink the next question rather than keep extending. - -**Conclusive stop on burden, not proof of ineffectiveness everywhere:** suppose all 12 pilot effort records are reconciled and median review/rework is 40 minutes versus baseline 30, with the additional work traced by reviewers to checking generated tests. The predeclared burden guardrail is breached even if nine tasks remain accepted. Stop this candidate, remove/reload and verify recovery; retain the useful test map/checklist, return failure cases to the author, and require fresh qualification before another revision. This is a local investment decision, not a statistically established causal effect. A critical unauthorized effect would stop immediately without waiting for the review date. - -**Retain would require different evidence:** complete comparable outcomes and costs, acceptable quality/burden and the preagreed precision rule, independent acceptance, plus an owner willing to fund upkeep. It authorizes only tested scope, never expansion to the whole company. Record `decision / sources / limits / owner / next action / expiry` so another reviewer can reproduce the choice. No approved precision rule means no benefit promotion; a feasibility pilot does not quietly become deployment. - -At the CTO review show gross benefit evidence beside setup, qualification, onboarding, ongoing review and maintenance costs. Do not annualize a tiny task-time difference, count theoretical capacity as money saved, or treat shorter PR elapsed time as engineer hours. A cheaper checklist that performs as well wins. The standalone [synthetic calculator](./measurement/synthetic-example.mdx) tests arithmetic only; it is not EXP-01 evidence. - -
-
Where each topic helps—and what it gives the next activity @@ -100,7 +51,7 @@ The six topics are connected lifecycle activities, not six rigid sequential appr
-Proven skills and working practices may support [Stage - 02 - Autonomous Agent](./stage-02-autonomous-agent.mdx). Stage 01 can remain valuable indefinitely; progression requires a separate case for authority and readiness. +Proven skills and working practices may support [Beyond 6 Months](./stage-02-autonomous-agent.mdx). Stage 01 can remain valuable indefinitely; progression requires a separate case for authority and readiness. **Start here:** [Understand and baseline one workflow →](./baseline.mdx). Consult the [Measurement registry](./measurement/index.mdx) when selecting evidence. diff --git a/docs/strategy/stage-02-autonomous-agent.mdx b/docs/strategy/stage-02-autonomous-agent.mdx index 047c5b1..2299886 100644 --- a/docs/strategy/stage-02-autonomous-agent.mdx +++ b/docs/strategy/stage-02-autonomous-agent.mdx @@ -1,7 +1,7 @@ --- id: stage-02-autonomous-agent -title: Beyond six months -description: Choose the next investment from evidence; bounded autonomy is one conditional option, not an inevitable stage. +title: Beyond 6 Months +description: Bridge first-six-month evidence toward the long-term human-controlled autonomous SDLC, through separate investment and authority decisions. hide_table_of_contents: true --- @@ -11,7 +11,7 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram'; **A separate authority decision, not the reward for skills adoption.** -The [Roadmap](./roadmap.mdx) ends with a CTO investment decision, not automatic progression. The [experiment](./stage-01-skills-adoption.mdx) may justify deeper improvement, selective replication, or stopping. The autonomous [Target](./target-operating-model.mdx) is a conditional long-term option only; humans retain direction and review. +The [6 Months Roadmap](./six-months-roadmap.mdx) ends with a CTO investment decision, not automatic progression. The [experiment](./six-months-roadmap.mdx#exp-01-a-small-decision-ready-example) may justify deeper improvement, selective replication, or stopping. The autonomous [Target](./target-operating-model.mdx) remains the long-term strategy vision; humans retain direction and review. The broad [Roadmap](./roadmap.mdx) connects skills and working practices to controlled autonomous capabilities. Six-month outcomes contribute toward that destination, but do not promise its timing or authorize its execution. If one workflow works but transfer fails, invest in local context and coaching rather than mandate uniform use. If several teams request help and recurring value exceeds support burden, propose dedicated enablement capacity with the CTO and team leads. If deterministic tooling solves the problem more reliably, fund that. If outcomes remain inconclusive, narrow or stop the intervention. Recheck the next-quarter portfolio against business priorities, task supply, team willingness and ownership; do not extrapolate a pilot to all engineering. @@ -19,7 +19,7 @@ If one workflow works but transfer fails, invest in local context and coaching r ## Consider additional authority only when necessary -Carry forward proven skills where useful, measurements and working practices from real human + AI Agent work. The references provide [governance](./skills-governance.mdx), [quality checks](./skills-quality.mdx), [adoption feedback](./skills-adoption.mdx), [measurement](./measurement/index.mdx) and [maintenance](./skills-maintenance.mdx); none is permission to expand authority automatically. The diagram below applies only after a separate business case identifies an operation that supervised work or deterministic automation cannot adequately address. +Carry forward proven skills where useful, measurements and working practices from real human + AI Agent work. The references provide [governance](./skills-governance.mdx), [quality checks](./skills-quality.mdx), [adoption feedback](./skills-adoption.mdx), [measurement](./measurement/index.mdx) and [maintenance](./skills-maintenance.mdx); none is permission to expand authority automatically. The diagram above applies only after a separate business case identifies an operation that supervised work or deterministic automation cannot adequately address. ## Introduce authority deliberately @@ -33,6 +33,8 @@ The output is either a recorded hold or a narrowly scoped authorization with con This is future direction, not deployed autonomy, agreed delivery dates or approved KPI thresholds. The transition depends on reviewed evidence and explicit authority decisions, not adoption volume alone. +**Return to the plan:** [6 Months Roadmap](./six-months-roadmap.mdx). + **Return to dependable work:** [Continue the Stage 01 improvement loop →](./stage-01-skills-adoption.mdx).
diff --git a/docs/strategy/target-operating-model.mdx b/docs/strategy/target-operating-model.mdx index d90a0b0..69b012b 100644 --- a/docs/strategy/target-operating-model.mdx +++ b/docs/strategy/target-operating-model.mdx @@ -1,8 +1,8 @@ --- id: target-operating-model -title: First six months as AI Architect -sidebar_label: Six-month strategy -description: Improve real engineering output through a solo, CTO-sponsored, team-partnered six-month learning plan. +title: Target +sidebar_label: Target +description: An autonomous agent executes and governs the SDLC; humans direct, guide and review the repeating cycle. hide_table_of_contents: true --- @@ -10,68 +10,30 @@ import ArchifyDiagram from '@site/src/components/ArchifyDiagram';
-**Proposed strategy · No company results or organizational commitments are claimed.** +**TO-BE · Target operating model — the intended strategy, not a deployed system.** -## Improve the work, not the AI usage +The long-term destination remains human-directed, guided and reviewed autonomous SDLC. It is not a six-month commitment or present authorization. The [6 Months Target](./six-months-target.mdx) and [6 Months Roadmap](./six-months-roadmap.mdx) describe a credible nearer-term contribution, not a replacement for this ambition. No fixed completion date or inevitable progression is implied. - +## Autonomous SDLC, human direction -The assignment describes close to **80 engineers, growing to around 100 by year end, across more than 10 teams**. Every developer already uses AI, unevenly. I start **solo, reporting to the CTO, with no formal authority over teams**. The comparison is current AI-assisted practice—not an imagined no-AI organization. These facts come from *AI Architect Test Task*, Context and question 1; everything below is a proposal. + -My first investment is time alongside developers and reviewers: find where useful changes stall, then remove one evidenced constraint. Delivery is a starting hypothesis because a bounded change, tests and independent review can expose both benefit and transferred work. Discovery may show that flaky CI, unclear requirements or review capacity matters more than agent instructions. Fix that bottleneck instead. +An autonomous agent executes and governs every phase. Humans direct, guide and review it; a separate human-controlled AI Agent contributes to each phase from outside the cycle. -The [month-by-month plan](./roadmap.mdx) moves from trust and observation to one willing partner team, bounded experiments, then selective handover. I offer pairing and show verified examples rather than mandate tools. The CTO sponsors access and resolves priority conflicts; team leads agree contributions. Neither sponsorship nor this document conscripts a team. +**Solid arrows:** lifecycle · **Dotted spokes:** execution and governance · **Dashed arrows:** contributions. -## Choose the smallest intervention that fits +**Scope → Architecture → UI/UX → Planning → Delivery → UAT → Security → Releases → Scope** -Missing repository knowledge suggests better context; inconsistent checking suggests coaching or a review checklist; repeatable mechanical work suggests deterministic automation; unreliable tests suggest test/CI repair. A **skill** packages reusable instructions, prerequisites and verification steps when repeated agent-guided work genuinely needs them. It is one option, not permission and not proof of correctness. Compare alternatives against the same bottleneck before funding a catalog or control platform. +The arrows show the intended SDLC cycle, not the order of skills rollout. Releases returns evidence to Scope; human direction informs the next iteration. The [Roadmap](./roadmap.mdx) starts with human + AI Agent work in Delivery before considering wider autonomous authority. -Use the [worked experiment](./stage-01-skills-adoption.mdx) to connect a hypothesis, small initial measures, safety checks and a retain/change/stop decision. Existing review, data restrictions and release authority stay in place. The [16 metric contracts](./measurement/index.mdx) and skills references are optional depth, not startup bureaucracy. - -## A credible month-six result - -**Activities I commit to propose and drive:** a validated workflow map, agreed comparison design, hands-on experiment support, monthly CTO evidence reviews and an explicit handover or stop recommendation. Delivery depends on agreed access and partner capacity; blocked work is reported, not disguised as progress. - -**Contingent visible outcome:** one workflow retained by one partner team, with a second willing team trying a bounded transfer only if value and support hold. Developers can reproduce the example; reviewers see better evidence without extra hidden burden; a voluntary champion and backup can maintain it. Evidence must include comparable task records, independent acceptance, matured defect follow-up, review/rework effort, setup and upkeep costs, and a decision signed by the actual owner. These are required evidence types, not results already obtained or promised percentage gains. If the pilot fails, month six should instead show what was stopped, why, and which cheaper intervention replaced it. Neither scenario means rollout to all 80–100 engineers. - -## Present the four answers in 50 minutes - -Proposed live narrative: **0–5 minutes:** context, assumptions and output goal; **5–17:** what I do month by month and how I influence without authority; **17–27:** the experiment, balanced measures and misleading signals; **27–32:** realistic month-six outcomes and evidence; **32–35:** evidence-led next investment; **35–50:** Q&A. This is **35 minutes content + 15 minutes Q&A**, not an assignment-imposed split. Content matters more than visual polish. Walk the main story, then open references only for questions. - -Beyond six months, choose deeper improvement, careful replication, additional enablement capacity or stopping an ineffective approach. The [future options](./stage-02-autonomous-agent.mdx) include bounded autonomy only where a new business case and readiness justify it; autonomous SDLC is not the destination promised by this plan. - -
-Assumptions register — validate before depending on them - -| Status / assumption | Validate when and with whom | If false | -| --- | --- | --- | -| PDF fact: scale, growth, uneven existing AI use; solo CTO-reporting role without team authority | Restate with CTO in month 1; do not substitute the portal organization model for company evidence | Replan capacity and influence approach if the brief changes | -| Unknown: repositories, languages, tools, providers and data restrictions | Month 1, developers plus actual security/platform contacts | Use approved sanitized material; do not choose a client or send restricted code before clearance | -| Hypothesis: regression-evidence rework is an important Delivery bottleneck | Month 1, trace recent changes with developers and reviewers | Choose the observed bottleneck; do not force a skills pilot | -| Unknown: at least one team can volunteer review and pairing time | Month 1–2, team lead and CTO | Reduce scope to discovery/demonstration; ask CTO to resolve priorities, not impose uptake | -| Unknown: tasks, PRs, CI and defects can be linked lawfully | Month 1–2, evidence owner and privacy/security contact | Use a minimal approved worksheet; label missing outcomes and limit claims | -| Unknown: enough comparable tasks mature in the pilot window | Month 2, prospective baseline | Narrow the question or run feasibility-only work; no unsupported benefit claim | -| Unknown: a champion can own upkeep without the architect | Month 5, willing team and lead | Retain only within funded support capacity or retire; do not expand | - -The portal's departmental model is not confirmation of Eldorado's actual reporting lines. Reference-role names below are candidate functions to map to real people, not appointed authorities. - -
- -
-Conditional long-term Target operating model — not the six-month promise - - - -Only if separately justified, an autonomous agent could execute and coordinate the SDLC under human direction, guidance and review, with separate human-controlled AI Agent contributions. **Solid arrows:** lifecycle · **Dotted spokes:** execution and governance · **Dashed arrows:** contributions. Scope → Architecture → UI/UX → Planning → Delivery → UAT → Security → Releases → Scope. This topology is retained as an option, not an inevitable next stage. - -
+**Illustrative Delivery thread:** an agent prepares a bounded code change and regression evidence, an independent human reviews the exact artifact, and existing release controls decide whether it can advance. Stage 01 makes this working practice dependable; Stage 02 separately considers what the central agent may execute. Skills supply knowledge and verification steps, never permission.
Supporting implementation options: trust boundaries and recovery ## Controls that support autonomous execution -The earlier control design below is a conditional implementation option, not the six-month strategy, an agreed assignment of approval roles or a claim of installed controls. Detailed approval policy and responsibilities remain to be defined with humans. +The lifecycle above is the strategic direction. The earlier control design below is a supporting implementation option, not an agreed assignment of approval roles or a claim of installed controls. Detailed approval policy and responsibilities remain to be defined with humans. 1. Humans direct, guide and review; the autonomous agent executes and governs work across the lifecycle. 2. The reviewed registry supplies pinned skills and qualified adapters to coordinator and local clients. @@ -106,7 +68,7 @@ Central controls verify protected-branch review, actual artifact identity, exact ### Department contributions -The existing team structure provides a starting point. The contributions below are implementation proposals, not settled approval roles or lifecycle gates. +The documented organization model is an assumption to validate, not PDF evidence of actual reporting lines. Candidate functions must be mapped to real people before any decision. The existing team structure provides a starting point. The contributions below are implementation proposals, not settled approval roles or lifecycle gates. ### Product / Product Management @@ -183,30 +145,32 @@ See the existing [organization structure](/organization/structure/), [department
Strategy rationale and reading map -### References support the chosen intervention +### Govern skills first, expand authority only with evidence -The first investment is learning where current AI-assisted work can improve. Use skills governance only if a skills intervention is selected; it is not a prerequisite for discovery, coaching or fixing deterministic tooling. +Eldorado's target is to make AI-assisted work dependable across the organization: useful guidance, clear human ownership, controlled execution and measurable outcomes. The first investment is understanding and improving current AI-assisted work, not an autonomous replacement for the organization. Governed skills and practices support the direction; context, coaching, test repair or deterministic automation may be the better immediate intervention. A skill packages reusable working knowledge, prerequisites and verification steps. It helps an agent perform a task; it does not grant permission or guarantee that the work is correct. -The conditional target combines an autonomous agent with human direction and review. Actual client support requires qualification; names such as Copilot, Claude Code and Cline are examples, not known company tools. Repository, CI and release controls remain authoritative. +The target combines an autonomous agent executing and governing the SDLC with humans directing, guiding and reviewing it. Developer choice on local laptops remains a supporting option: Copilot, Claude Code and Cline can receive reviewed portable skill content through qualified adapters. Repository, CI and release controls support execution; detailed approval policies remain implementation decisions, not new roles established by this strategy. -This strategy does not establish that controls are installed or that AI has improved Eldorado's performance. Validate actual clients, responsibilities, data boundaries and available evidence; the documented six-department model is not source evidence for this assignment. +The strategy describes the intended operating model and the evidence required to introduce it. It does not establish that these controls are installed, that every client is supported, or that AI has improved Eldorado's performance. The current reference is the documented six-department organization. Rollout begins by validating actual clients, responsibilities, data boundaries and available evidence. Success means accepted outcomes with maintained quality, controlled risk and understood total cost. Faster activity without reliable outcomes is not success. More skill invocations, generated lines or tool subscriptions are not productivity targets. People remain accountable for product, customer, financial and personnel decisions. ### Navigate the strategy -- [Roadmap](./roadmap.mdx) — Proposed six-month priorities, capacity, dependencies and decisions. -- [Stage 01](./stage-01-skills-adoption.mdx) — Follow one workflow through evidence, decisions and feedback. +- [Roadmap](./roadmap.mdx) — Skills adoption first; future autonomy separately justified, no promised dates or budgets. +- [6 Months Target](./six-months-target.mdx) — Assignment context, realistic outcomes and assumptions. +- [6 Months Roadmap](./six-months-roadmap.mdx) — Month 1–6 priorities and bounded experiment decisions. +- [Skills lifecycle](./stage-01-skills-adoption.mdx) — Supporting handoffs, decisions and feedback. - [Baseline](./baseline.mdx) — Understand current work and record the starting position before changing it. - [Skills governance](./skills-governance.mdx) — Contract, lifecycle, decision rights, adapters, locking, exceptions. - [Skills quality](./skills-quality.mdx) — Risk tiers, independent evaluation, repeated trials, adversarial conformance. - [Skills adoption](./skills-adoption.mdx) — Workflow-led coaching, client choice, feedback, manual path. - [Measurement](./measurement/index.mdx) — Full KPI contracts, minimal events, illustrative calculations, privacy and limits. - [Skills maintenance](./skills-maintenance.mdx) — Review, drift, deprecation, rollback and incident handling. -- [Stage 02](./stage-02-autonomous-agent.mdx) — Decide whether bounded autonomous authority is justified and recoverable. +- [Beyond 6 Months](./stage-02-autonomous-agent.mdx) — Decide whether bounded autonomous authority is justified and recoverable.
-**Next:** [Follow the six-month plan →](./roadmap.mdx) +**Next:** [Follow the Roadmap toward Target →](./roadmap.mdx)
diff --git a/research/ai-adoption/assignment-evidence.json b/research/ai-adoption/assignment-evidence.json index e3bc54a..6510fa8 100644 --- a/research/ai-adoption/assignment-evidence.json +++ b/research/ai-adoption/assignment-evidence.json @@ -7,16 +7,163 @@ "read_scope": "Full PDF, Format, Context and all four assignment questions, plus assumptions instruction" }, "requirements": [ - {"id":"format","source_section":"Format","requirement":"Live presentation: 50 minutes including Q&A; content over polish","pages":["target-operating-model"],"markers":["35 minutes content + 15 minutes Q&A","Content matters more than visual polish"]}, - {"id":"context","source_section":"Context","requirement":"Close to 80 engineering people, around 100 by year end, more than 10 teams; every developer already uses AI unevenly; real output not usage","pages":["target-operating-model","baseline"],"markers":["80 engineers","100 by year end","more than 10 teams","current AI-assisted practice"]}, - {"id":"q1","source_section":"Assignment 1","requirement":"Month 1–6 concrete priorities and change starting solo, CTO reporting, no formal team authority","pages":["roadmap","target-operating-model"],"markers":["Month 1","Month 2","Month 3","Month 4","Month 5","Month 6","One active live pilot at a time","no formal authority","monthly CTO review"]}, - {"id":"q2","source_section":"Assignment 2","requirement":"Know whether engineering output improves; track meaningful measures and explain misleading signals","pages":["measurement/index","stage-01-skills-adoption","baseline"],"markers":["Review/rework minutes","Escaped defects and severity","Where this misleads","task mix","not a causal ROI claim","source","uncertainty"]}, - {"id":"q3","source_section":"Assignment 3","requirement":"Realistic visible month-six changes backed by evidence","pages":["target-operating-model","roadmap"],"markers":["Activities I commit","Contingent visible outcome","one partner team","matured defect follow-up","documented stop"]}, - {"id":"q4","source_section":"Assignment 4","requirement":"Role and organization AI use beyond six months","pages":["stage-02-autonomous-agent","target-operating-model"],"markers":["dedicated enablement capacity","deterministic tooling","conditional long-term option","not automatic progression"]}, - {"id":"assumptions","source_section":"Final instruction","requirement":"State assumptions where stack, tooling or processes are unknown","pages":["target-operating-model"],"markers":["Assumptions register","PDF fact","Unknown:","Hypothesis:","If false"]}, - {"id":"F1","source_section":"Professional audit F1","requirement":"First-revision comparator and recovery without invented prior approved bundle","pages":["skills-quality","skills-governance","skills-maintenance"],"markers":["first-revision","N/A","pinned clean","independent"]}, - {"id":"F2-F3","source_section":"Professional audit F2/F3","requirement":"Coherent illustrative packet, inconclusive bounded extension/stop, effort and value","pages":["stage-01-skills-adoption","skills-quality"],"markers":["EXP-01","Entirely fictional","Inconclusive at first review","one two-week evidence-completion extension","Conclusive stop on burden","one-off setup","optional reference designs"]} + { + "id": "format", + "source_section": "Format", + "requirement": "Live presentation: 50 minutes including Q&A; content over polish", + "pages": [ + "six-months-target" + ], + "markers": [ + "35 minutes content + 15 minutes Q&A", + "Content matters more than visual polish" + ] + }, + { + "id": "context", + "source_section": "Context", + "requirement": "Close to 80 engineering people, around 100 by year end, more than 10 teams; every developer already uses AI unevenly; real output not usage", + "pages": [ + "six-months-target", + "baseline" + ], + "markers": [ + "80 engineers", + "100 by year end", + "more than 10 teams", + "current AI-assisted practice" + ] + }, + { + "id": "q1", + "source_section": "Assignment 1", + "requirement": "Month 1\u20136 concrete priorities and change starting solo, CTO reporting, no formal team authority", + "pages": [ + "six-months-roadmap", + "six-months-target" + ], + "markers": [ + "Month 1", + "Month 2", + "Month 3", + "Month 4", + "Month 5", + "Month 6", + "One active live pilot at a time", + "no formal authority", + "monthly CTO review" + ] + }, + { + "id": "q2", + "source_section": "Assignment 2", + "requirement": "Know whether engineering output improves; track meaningful measures and explain misleading signals", + "pages": [ + "measurement/index", + "six-months-roadmap", + "baseline" + ], + "markers": [ + "Review/rework minutes", + "Escaped defects and severity", + "Where this misleads", + "task mix", + "not a causal ROI claim", + "source", + "uncertainty" + ] + }, + { + "id": "q3", + "source_section": "Assignment 3", + "requirement": "Realistic visible month-six changes backed by evidence", + "pages": [ + "six-months-target", + "six-months-roadmap" + ], + "markers": [ + "Activities I commit", + "Contingent visible outcome", + "one partner team", + "matured defect follow-up", + "documented stop" + ] + }, + { + "id": "q4", + "source_section": "Assignment 4", + "requirement": "Role and organization AI use beyond six months", + "pages": [ + "stage-02-autonomous-agent", + "six-months-target" + ], + "markers": [ + "dedicated enablement capacity", + "deterministic tooling", + "long-term strategy vision", + "not automatic progression" + ] + }, + { + "id": "assumptions", + "source_section": "Final instruction", + "requirement": "State assumptions where stack, tooling or processes are unknown", + "pages": [ + "six-months-target" + ], + "markers": [ + "Assumptions register", + "PDF fact", + "Unknown:", + "Hypothesis:", + "If false" + ] + }, + { + "id": "F1", + "source_section": "Professional audit F1", + "requirement": "First-revision comparator and recovery without invented prior approved bundle", + "pages": [ + "skills-quality", + "skills-governance", + "skills-maintenance" + ], + "markers": [ + "first-revision", + "N/A", + "pinned clean", + "independent" + ] + }, + { + "id": "F2-F3", + "source_section": "Professional audit F2/F3", + "requirement": "Coherent illustrative packet, inconclusive bounded extension/stop, effort and value", + "pages": [ + "six-months-roadmap", + "skills-quality" + ], + "markers": [ + "EXP-01", + "Entirely fictional", + "Inconclusive at first review", + "one two-week evidence-completion extension", + "Conclusive stop on burden", + "one-off setup", + "optional reference designs" + ] + } ], - "verification_sources": ["scripts/assignment.test.mjs","scripts/connected-strategy.test.mjs","scripts/strategy-navigation.test.mjs","scripts/strategy-story.test.mjs","scripts/verify.mjs","scripts/browser/skills-stories.cjs","scripts/browser/strategy-navigation.cjs","scripts/browser/target-midpoints.cjs","scripts/browser/roadmap-timeline.cjs"], - "scope": "Traceability is a review aid, not semantic approval or business evidence. All 28 routes remain in strategy-coverage.json; all 16 canonical contracts retain original checksums, 9 prototypes and 7 unimplemented. Reviewer must cold-read the actual pages and inspect complete exports." + "verification_sources": [ + "scripts/assignment.test.mjs", + "scripts/connected-strategy.test.mjs", + "scripts/strategy-navigation.test.mjs", + "scripts/strategy-story.test.mjs", + "scripts/verify.mjs", + "scripts/browser/skills-stories.cjs", + "scripts/browser/strategy-navigation.cjs", + "scripts/browser/target-midpoints.cjs", + "scripts/browser/roadmap-timeline.cjs" + ], + "scope": "Traceability is a review aid, not semantic approval or business evidence. All 30 routes remain in strategy-coverage.json; all 16 canonical contracts retain original checksums, 9 prototypes and 7 unimplemented. Reviewer must cold-read the actual pages and inspect complete exports." } diff --git a/research/ai-adoption/strategy-coverage.json b/research/ai-adoption/strategy-coverage.json index 7f6991d..f5bb370 100644 --- a/research/ai-adoption/strategy-coverage.json +++ b/research/ai-adoption/strategy-coverage.json @@ -236,12 +236,12 @@ { "source": "docs/strategy/roadmap.mdx", "route": "/strategy/roadmap/", - "question": "What does a solo architect do month by month without team authority?", - "inputs": "PDF constraints, current AI practice, willing partners and unknown capacity", - "action_or_decision": "Month 1–6 discovery, bounded experiment, compare, selective transfer and CTO investment decision", - "output": "Proposed six-month plan with dependencies, evidence, capacity and stop choices", - "next_or_feedback": "/strategy/stage-01-skills-adoption/", - "review": "Assignment Q1; six-month native diagrams; no inevitable autonomy" + "question": "How do practices and skills progress toward controlled autonomous capabilities?", + "inputs": "Long-term Target and evidence from actual work", + "action_or_decision": "Delivery first; later phase order undecided; separate authority decision", + "output": "Broad progression with no fixed dates", + "next_or_feedback": "/strategy/six-months-target/", + "review": "Historical three-level roadmap restored, distinct from monthly plan" }, { "source": "docs/strategy/skills-adoption.mdx", @@ -286,10 +286,10 @@ { "source": "docs/strategy/stage-01-skills-adoption.mdx", "route": "/strategy/stage-01-skills-adoption/", - "question": "How do I assemble and decide one proportionate experiment?", + "question": "How do reusable lifecycle activities hand off evidence?", "inputs": "Workflow problem, people and current evidence", - "action_or_decision": "Baseline, choose intervention, qualify, authorize pilot, compare and decide; EXP-01 illustrative packet", - "output": "Supported workflow or explicit hold/stop; first-revision recovery, bounded extension and cost limits", + "action_or_decision": "Baseline, qualify, authorize pilot, compare and maintain; link canonical EXP-01 in six-month roadmap", + "output": "Lifecycle reference and feedback paths, not a competing plan", "next_or_feedback": "/strategy/baseline/", "review": "New native dependency story plus evidence handoffs" }, @@ -306,12 +306,32 @@ { "source": "docs/strategy/target-operating-model.mdx", "route": "/strategy/target-operating-model/", + "question": "What is the long-term human-controlled autonomous SDLC destination?", + "inputs": "Original agreed topology and human direction", + "action_or_decision": "Preserve ambition with independent controls and no present authority", + "output": "Long-term operating model, not six-month promise", + "next_or_feedback": "/strategy/roadmap/", + "review": "Original topology restored from pre-PR38; safeguards retained" + }, + { + "source": "docs/strategy/six-months-target.mdx", + "route": "/strategy/six-months-target/", "question": "What six-month strategy answers the AI Architect assignment?", "inputs": "Full PDF facts; explicitly unknown stack, processes and capacity", "action_or_decision": "Improve current AI-assisted engineering output with the smallest suitable intervention", "output": "Realistic month-six scenario, assumptions register and 35+15-minute presentation narrative", - "next_or_feedback": "/strategy/roadmap/", - "review": "Assignment Q1–4 main entry; preserved target topology subordinated as conditional reference" + "next_or_feedback": "/strategy/six-months-roadmap/", + "review": "PDF assignment retained independently of long-term destination; EXP-01 lives in six-month action plan" + }, + { + "source": "docs/strategy/six-months-roadmap.mdx", + "route": "/strategy/six-months-roadmap/", + "question": "What does a solo architect do month by month without team authority?", + "inputs": "PDF constraints, current AI practice, willing partners and unknown capacity", + "action_or_decision": "Month 1\u20136 discovery, bounded experiment, compare, selective transfer and CTO investment decision", + "output": "Proposed six-month plan with dependencies, evidence, capacity and stop choices", + "next_or_feedback": "/strategy/stage-02-autonomous-agent/", + "review": "PDF assignment retained independently of long-term destination; EXP-01 lives in six-month action plan" } ] } diff --git a/research/ai-adoption/strategy-model.json b/research/ai-adoption/strategy-model.json index fd412d9..9ea402f 100644 --- a/research/ai-adoption/strategy-model.json +++ b/research/ai-adoption/strategy-model.json @@ -30,7 +30,7 @@ "pages": [ { "id": "target-operating-model", - "title": "First six months as AI Architect", + "title": "Target", "purpose": "Solo CTO-sponsored improvement plan; realistic outcomes, assumptions and presentation; conditional target topology." }, { @@ -282,7 +282,7 @@ "gaming_risk": "Split easy tasks or omit starts; reconcile starts to approved backlog and audit acceptance rubrics.", "missing_data_handling": "Unresolved/missing terminal outcomes remain in denominator with unknown count and known-outcome coverage; do not label them failed. Invalid/missing start excluded from calculation but flagged as orphan evidence.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 6, "denominator": 10, "result": 60.0, @@ -316,7 +316,7 @@ "gaming_risk": "Choose easy labels or hide negative cases; freeze corpus and independently review labels.", "missing_data_handling": "Unknown activation/relevance is unscorable; publish missing count and deny qualification if planned coverage incomplete.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 18, "denominator": 20, "result": 90.0, @@ -350,7 +350,7 @@ "gaming_risk": "Overtrigger to maximize recall; always pair with precision and negative cases.", "missing_data_handling": "Report evaluation coverage; null if no relevant labeled tasks.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 18, "denominator": 24, "result": 75.0, @@ -386,7 +386,7 @@ "gaming_risk": "Remove silent devices or trust declared versions; reconcile managed inventory and separately label attestation trust.", "missing_data_handling": "Unknown/stale versions count outside numerator, inside denominator. Show inventory discovery coverage versus eligible device roster; if roster unknown metric is provisional.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 8, "denominator": 10, "result": 80.0, @@ -421,7 +421,7 @@ "gaming_risk": "Invocation quotas and coercion; no target usage count, split server/client/self-report origins.", "missing_data_handling": "Show observed lower bound and telemetry/response coverage; missing usage unknown rather than non-use.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 7, "denominator": 10, "result": 70.0, @@ -456,7 +456,7 @@ "gaming_risk": "Timestamp rewriting and cherry-picking fast work; lock change mapping and show undeployed backlog age.", "missing_data_handling": "Missing commit mapping or negative/skewed duration excluded from numeric sample, reported explicitly; no zero substitution.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 120, "denominator": 10, "result": 12.0, @@ -490,7 +490,7 @@ "gaming_risk": "Split deployments without value; pair with success, rework and failure measures.", "missing_data_handling": "Missing feed periods not zero; report coverage and no unqualified overall rate when period incomplete.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 14, "denominator": 7, "result": 2.0, @@ -526,7 +526,7 @@ "gaming_risk": "Avoid incident links or relabel intervention planned; reconcile rollbacks/hotfixes independently.", "missing_data_handling": "Known failures / all eligible deployments is a lower bound where incident linkage incomplete; label provisional and report unknown links.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 2, "denominator": 20, "result": 10.0, @@ -561,7 +561,7 @@ "gaming_risk": "Premature recovery declarations or omit hard cases; require operational readback and carry unresolved ages.", "missing_data_handling": "Unresolved failures reported separately and excluded only from recovered-duration distribution; prevent declaring improvement without their visibility.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 9, "denominator": 3, "result": 3.0, @@ -596,7 +596,7 @@ "gaming_risk": "Call hotfixes planned; freeze reason and independently reconcile incident/deployment links.", "missing_data_handling": "Unknown classification stays denominator; observed numerator is lower bound until reconciliation; show classification coverage.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 3, "denominator": 20, "result": 15.0, @@ -631,7 +631,7 @@ "gaming_risk": "Shorten follow-up or downgrade severity; freeze horizon and rubric and independently sample defects.", "missing_data_handling": "Unknown linkage is a coverage warning; no fabricated clean outcome. Show absolute defect and severe incident counts as well.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 2, "denominator": 20, "result": 10.0, @@ -667,7 +667,7 @@ "gaming_risk": "Hide incidents or inflate harmless trials; absolute severity counts and fixed task mix accompany rate.", "missing_data_handling": "Unknown outcomes remain visible; zero detected effects never proves safety. Missing audits make rate provisional.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 1, "denominator": 100, "result": 1.0, @@ -702,7 +702,7 @@ "gaming_risk": "Count tokens only or hide labor/failures; reconcile invoice and allocation totals without double counting.", "missing_data_handling": "Missing cost buckets produce partial estimate plus coverage, not a total. Mixed currency requires dated approved conversion; zero accepted outcomes = null with full cost shown.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 600, "denominator": 6, "result": 100.0, @@ -717,14 +717,14 @@ "id": "human-experience", "name": "Verification confidence and cognitive load", "dimension": "experience", - "definition": "Three separate anonymous 1–5 item distributions: confidence in verifying output, manageable workload, usefulness. Primary item: verification confidence mean; report full distributions and response rate.", + "definition": "Three separate anonymous 1\u20135 item distributions: confidence in verifying output, manageable workload, usefulness. Primary item: verification confidence mean; report full distributions and response rate.", "formula": { - "numerator": "Sum valid 1–5 verification-confidence responses, one per participant per survey wave", + "numerator": "Sum valid 1\u20135 verification-confidence responses, one per participant per survey wave", "denominator": "Count valid responses to that item", "expression": "N / D", "aggregation": "mean" }, - "unit": "points (1–5)", + "unit": "points (1\u20135)", "eligible_population": "Invited eligible cohort at fixed survey wave; voluntary responses.", "exclusions": "Invalid/out-of-range answers and superseded duplicate submission; nonresponders stay in response-rate denominator.", "source_events_tool": [ @@ -736,11 +736,11 @@ "gaming_risk": "Pressure to respond positively; no manager access to individual responses, avoid identifying free text.", "missing_data_handling": "Report valid response count / invited count and item nonresponse; no imputation. Suppress people cohorts below five.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 36, "denominator": 10, "result": 3.6, - "unit": "points (1–5)" + "unit": "points (1\u20135)" } }, { @@ -773,7 +773,7 @@ "gaming_risk": "Rubber-stamp review dates; require linked regression/security/usefulness evidence.", "missing_data_handling": "Missing owner/date/evidence outside numerator; show ownerless, deprecated-in-use and revoked-in-use absolute counts.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 9, "denominator": 12, "result": 75.0, @@ -808,7 +808,7 @@ "gaming_risk": "Weaken rubric or count drafts as customer benefit; lock rubric and independently audit acceptance.", "missing_data_handling": "Unknown follow-up stays denominator with unresolved count; no claim actual business outcome changed without source evidence.", "illustrative_example": { - "label": "SYNTHETIC — illustrative, not Eldorado observations", + "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", "numerator": 8, "denominator": 10, "result": 80.0, @@ -1157,6 +1157,6 @@ ] } ], - "open_decisions_reference": "strategy-blueprint.md — Internal evidence mapping and open decisions", + "open_decisions_reference": "strategy-blueprint.md \u2014 Internal evidence mapping and open decisions", "publication_boundary": "Evidence mapping, research and open decisions stay outside reader-facing docs/static/search; proposed quality/privacy values must be visibly target settings, never current installation claims." } diff --git a/scripts/assignment.test.mjs b/scripts/assignment.test.mjs index 4b1edf8..a0ce52a 100644 --- a/scripts/assignment.test.mjs +++ b/scripts/assignment.test.mjs @@ -13,11 +13,11 @@ test('PDF assignment and audit matrix map to actual page evidence',()=>{ for(const p of matrix.verification_sources)assert(read(p)); assert.equal(35+15,50); }); -test('main reading path does not promise skills rollout or autonomous destination',()=>{ - const main=read('docs/strategy/target-operating-model.mdx').split('
')[0]; +test('six-month reading path does not promise skills rollout or autonomous delivery',()=>{ + const main=read('docs/strategy/six-months-target.mdx').split('
')[0]; assert(main.indexOf('strategy-six-months'){ test('target caption is inside SVG, expands canvas and fails closed',()=>{ const svg=''; const out=targetCaption(svg); - for(const term of ['Proposed optional target','Solid: lifecycle','Dotted: execution','Dashed: human-controlled'])assert(out.includes(term)); + for(const term of ['Long-term Target','Solid: lifecycle','Dotted: execution','Dashed: human-controlled'])assert(out.includes(term)); assert(out.includes('viewBox="0 0 1200 1130"')); assert(out.indexOf('eldorado-target-caption')')); assert.equal((out.match(/data-node-id=/g)||[]).length,1); diff --git a/scripts/browser/connected-journey.cjs b/scripts/browser/connected-journey.cjs index a8674cf..9fd4f8b 100644 --- a/scripts/browser/connected-journey.cjs +++ b/scripts/browser/connected-journey.cjs @@ -3,6 +3,6 @@ const fs=require('node:fs');const assert=require('node:assert/strict'); (async()=>{ const base=process.argv[2]||'http://127.0.0.1:4173';const out=`.cache/journey-${process.argv[3]||'candidate'}`;fs.mkdirSync(out,{recursive:true}); const b=await chromium.launch({executablePath:process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE,args:['--no-sandbox']});const results=[]; - const steps=[['target-operating-model','roadmap'],['roadmap','stage-01-skills-adoption'],['stage-01-skills-adoption','baseline'],['baseline','measurement'],['measurement','skills-quality'],['skills-quality','skills-governance'],['skills-governance','skills-quality'],['skills-quality','skills-adoption'],['skills-adoption','skills-maintenance'],['skills-maintenance','skills-quality'],['skills-quality','measurement/validated-task-success'],['measurement/validated-task-success','skills-quality'],['skills-maintenance','stage-02-autonomous-agent'],['stage-02-autonomous-agent','stage-01-skills-adoption']]; + const steps=[['target-operating-model','roadmap'],['roadmap','six-months-target'],['six-months-target','six-months-roadmap'],['six-months-roadmap','stage-02-autonomous-agent'],['six-months-roadmap','stage-01-skills-adoption'],['stage-01-skills-adoption','baseline'],['baseline','measurement'],['measurement','skills-quality'],['skills-quality','skills-governance'],['skills-governance','skills-quality'],['skills-quality','skills-adoption'],['skills-adoption','skills-maintenance'],['skills-maintenance','skills-quality'],['skills-quality','measurement/validated-task-success'],['measurement/validated-task-success','skills-quality'],['skills-maintenance','stage-02-autonomous-agent'],['stage-02-autonomous-agent','stage-01-skills-adoption']]; try{for(const width of [1440,390]){const p=await b.newPage({viewport:{width,height:900}});for(const [from,to]of steps){await p.goto(`${base}/eldorado-v1/documentation/strategy/${from}/`,{waitUntil:'networkidle'});const href=`/eldorado-v1/documentation/strategy/${to}/`;const link=p.locator(`article a[href="${href}"]`).filter({visible:true}).first();assert(await link.count(),`${from} → ${to}`);await link.scrollIntoViewIfNeeded();await p.waitForLoadState('networkidle');await link.click();await p.waitForURL(`${base}${href}`);await p.locator('article h1').waitFor();results.push({width,from,to,clicked:true});fs.writeFileSync(`${out}/results.json`,JSON.stringify(results,null,2))}await p.close()}console.log(`PASS ${results.length} real reader handoffs and feedback links`)}finally{await b.close()} })().catch(e=>{console.error(e);process.exitCode=1}); diff --git a/scripts/browser/inline-controls.cjs b/scripts/browser/inline-controls.cjs index f83f4b7..bfa1be0 100644 --- a/scripts/browser/inline-controls.cjs +++ b/scripts/browser/inline-controls.cjs @@ -13,8 +13,6 @@ const fs = require('node:fs'); const page = await context.newPage(); await page.goto(`${base}/eldorado-v1/documentation/strategy/`, {waitUntil: 'networkidle'}); await page.addStyleTag({content:'html {scroll-behavior:auto !important;}'}); - await page.getByText('Conditional long-term Target operating model — not the six-month promise',{exact:true}).focus(); - await page.keyboard.press('Enter'); const panel = page.locator('.archify-panel--story[data-diagram="strategy-target"]'); const iframe = panel.locator(width > 700 ? '.story-desktop' : '.story-mobile'); await iframe.scrollIntoViewIfNeeded(); @@ -140,9 +138,7 @@ const fs = require('node:fs'); await page.waitForURL('**/strategy/roadmap/'); await page.goBack({waitUntil:'domcontentloaded'}); await page.waitForURL('**/strategy/target-operating-model/'); - await page.getByRole('heading', {name:'First six months as AI Architect', exact:true, level:1}).waitFor(); - await page.getByText('Conditional long-term Target operating model — not the six-month promise',{exact:true}).focus(); - await page.keyboard.press('Enter'); + await page.getByRole('heading', {name:'Target', exact:true, level:1}).waitFor(); const next = page.locator(`.archify-panel--story[data-diagram="strategy-target"] > .story-${width > 700 ? 'desktop' : 'mobile'}`); await next.scrollIntoViewIfNeeded(); await (await (await next.elementHandle()).contentFrame()).waitForFunction(() => document.documentElement.dataset.theme === 'dark'); diff --git a/scripts/browser/roadmap-timeline.cjs b/scripts/browser/roadmap-timeline.cjs index aaeff77..646abcf 100644 --- a/scripts/browser/roadmap-timeline.cjs +++ b/scripts/browser/roadmap-timeline.cjs @@ -26,7 +26,7 @@ const views = { const ids=views[name]; geometry.cards.sort((a,b)=>ids.indexOf(a.id)-ids.indexOf(b.id)); assert.deepEqual(geometry.cards.map(n => n.id), ids); - assert.deepEqual(geometry.cards.map(n => n.number), ids.length === 6 ? ids.map((_,i)=>`Step ${i+1}`) : name === 'strategy-roadmap' ? ['Proposed M1–4','Proposed M5–6'] : ['First','If justified']); + assert.deepEqual(geometry.cards.map(n => n.number), ids.length === 6 ? ids.map((_,i)=>`Step ${i+1}`) : name === 'strategy-roadmap' ? ['Stage 1','Stage 2'] : ['First','If justified']); assert.equal(geometry.edges.length,ids.length===6?6:1); if(ids.length===6) assert(geometry.edges.some(e=>e.id==='repeat')); for(const edge of geometry.edges) assert(edge.box.left>=0 && edge.box.right<=geometry.width+1 && edge.box.top>=0 && edge.box.bottom<=geometry.height+1, `clipped edge ${name} ${edge.id}`); diff --git a/scripts/browser/roadmap.cjs b/scripts/browser/roadmap.cjs index 7872b01..bcf352b 100644 --- a/scripts/browser/roadmap.cjs +++ b/scripts/browser/roadmap.cjs @@ -68,7 +68,7 @@ const fs = require('node:fs'); if (width < 700) await page.getByRole('button', {name:'Toggle navigation bar'}).click(); const menu = page.locator('.theme-doc-sidebar-menu .menu__link').filter({visible:true}); await menu.first().waitFor({state:'visible'}); - assert.deepEqual((await menu.allTextContents()).slice(0,2), ['Six-month strategy','Roadmap']); + assert.deepEqual((await menu.allTextContents()).slice(0,2), ['Target','Roadmap']); if (width < 700) await page.getByRole('button', {name:'Close navigation bar'}).click(); const panel = page.locator('.archify-panel--story').first(); const iframe = panel.locator(width > 700 ? '.story-desktop' : '.story-mobile'); diff --git a/scripts/browser/sdlc-cycle.cjs b/scripts/browser/sdlc-cycle.cjs index 7c499ae..62299d4 100644 --- a/scripts/browser/sdlc-cycle.cjs +++ b/scripts/browser/sdlc-cycle.cjs @@ -23,18 +23,16 @@ const fs = require('node:fs'); if (width < 700) await page.getByRole('button', {name:'Toggle navigation bar'}).click(); const menu = page.locator('.theme-doc-sidebar-menu .menu__link').filter({visible:true}); await menu.first().waitFor({state:'visible'}); - assert.deepEqual(await menu.allTextContents(), ['Six-month strategy', 'Roadmap', 'One bounded experiment', 'Beyond six months']); + assert.deepEqual(await menu.allTextContents(), ['Target', 'Roadmap', '6 Months Target', '6 Months Roadmap', 'Beyond 6 Months']); assert((await menu.nth(0).getAttribute('href')).endsWith('/strategy/target-operating-model/')); assert((await menu.nth(1).getAttribute('href')).endsWith('/strategy/roadmap/')); - assert.equal(await menu.filter({hasText:/^Six-month strategy$/}).count(), 1); + assert.equal(await menu.filter({hasText:/^Target$/}).count(), 1); await page.screenshot({path:`${output}/${width}-${route ? 'target' : 'landing'}-navigation.png`,fullPage:true,animations:'disabled'}); await menu.nth(1).click(); await page.waitForURL('**/strategy/roadmap/'); await page.getByRole('heading', {level:1,name:'Roadmap',exact:true}).waitFor(); await page.goBack({waitUntil:'domcontentloaded'}); await page.waitForURL('**/strategy/target-operating-model/'); - await page.getByText('Conditional long-term Target operating model — not the six-month promise',{exact:true}).focus(); - await page.keyboard.press('Enter'); const iframe = page.locator(`[data-diagram="strategy-target"] > .story-${width > 700 ? 'desktop' : 'mobile'}`); await iframe.scrollIntoViewIfNeeded(); const frame = await (await iframe.elementHandle()).contentFrame(); diff --git a/scripts/browser/sidebar-coverage.cjs b/scripts/browser/sidebar-coverage.cjs index 810df70..564d7fe 100644 --- a/scripts/browser/sidebar-coverage.cjs +++ b/scripts/browser/sidebar-coverage.cjs @@ -46,7 +46,7 @@ const fs = require('node:fs'); await page.waitForURL(`${base}/eldorado-v1/documentation/strategy/measurement/supported-bundle-coverage/`); await page.getByRole('heading', {level:1, name:'Supported bundle coverage', exact:true}).waitFor(); assert((await page.locator('article').innerText()).includes('Supported bundle coverage')); - assert.equal(await page.locator('.breadcrumbs a').filter({hasText:'One bounded experiment'}).getAttribute('href'), '/eldorado-v1/documentation/strategy/stage-01-skills-adoption/'); + assert.equal(await page.locator('.breadcrumbs a').filter({hasText:'6 Months Roadmap'}).getAttribute('href'), '/eldorado-v1/documentation/strategy/six-months-roadmap/'); assert((await page.locator('.breadcrumbs').innerText()).includes('Measurement')); await open(); await menu.getByRole('link', {name:'Supported bundle coverage', exact:true}).waitFor({state:'visible'}); diff --git a/scripts/browser/skills-measurement.cjs b/scripts/browser/skills-measurement.cjs index 3ee5de3..60787ce 100644 --- a/scripts/browser/skills-measurement.cjs +++ b/scripts/browser/skills-measurement.cjs @@ -28,7 +28,7 @@ const fs = require('node:fs'); const menu = page.locator('.theme-doc-sidebar-menu .menu__link').filter({visible:true}); await menu.first().waitFor({state:'visible'}); const metrics = JSON.parse(fs.readFileSync('research/ai-adoption/measurement-migration.json','utf8')).metrics; - assert.deepEqual(await menu.allTextContents(), ['Six-month strategy','Roadmap','One bounded experiment','Measurement',...metrics.map(m => m.title),'Collection and safeguards','Run the synthetic measurement example','Baseline','Governance','Quality','Adoption','Maintenance','Beyond six months']); + assert.deepEqual(await menu.allTextContents(), ['Target','Roadmap','6 Months Target','6 Months Roadmap','Skills lifecycle reference','Measurement',...metrics.map(m => m.title),'Collection and safeguards','Run the synthetic measurement example','Baseline','Governance','Quality','Adoption','Maintenance','Beyond 6 Months']); if (width < 700) await page.getByRole('button', {name:'Close navigation bar'}).click(); const panel = page.locator('.archify-panel--story'); const iframe = panel.locator(width > 700 ? '.story-desktop' : '.story-mobile'); diff --git a/scripts/browser/skills-stories.cjs b/scripts/browser/skills-stories.cjs index 6ae5754..0cf77ba 100644 --- a/scripts/browser/skills-stories.cjs +++ b/scripts/browser/skills-stories.cjs @@ -9,7 +9,7 @@ const assert=require('node:assert/strict'); for(const topic of ['six-months','measurement','baseline','governance','quality','adoption','maintenance','stage01','stage02']) for(const width of [1440,1024,390,320]) { console.log(`Checking ${topic} at ${width}px`); const page=await browser.newPage({viewport:{width,height:900},colorScheme:'light'});const errors=[];page.on('pageerror',e=>errors.push(e.message)); - const route=topic==='six-months'?'target-operating-model':topic==='stage01'?'stage-01-skills-adoption':topic==='stage02'?'stage-02-autonomous-agent':['measurement','baseline'].includes(topic)?topic:`skills-${topic}`; + const route=topic==='six-months'?'six-months-roadmap':topic==='stage01'?'stage-01-skills-adoption':topic==='stage02'?'stage-02-autonomous-agent':['measurement','baseline'].includes(topic)?topic:`skills-${topic}`; assert.equal((await page.goto(`${base}/eldorado-v1/documentation/strategy/${route}/`,{waitUntil:'networkidle'})).status(),200); const panel=page.locator('.archify-panel--skills');assert.equal(await panel.count(),1); const iframe=panel.locator(width>1100?'.story-desktop':'.story-mobile');await iframe.scrollIntoViewIfNeeded(); diff --git a/scripts/browser/strategy-navigation.cjs b/scripts/browser/strategy-navigation.cjs index 6493c77..32e01c8 100644 --- a/scripts/browser/strategy-navigation.cjs +++ b/scripts/browser/strategy-navigation.cjs @@ -6,14 +6,14 @@ const fs = require('node:fs'); const output = `.cache/strategy-navigation-${process.argv[3] || 'local'}`; fs.mkdirSync(output, {recursive:true}); const prefix = '/eldorado-v1/documentation/strategy/'; - const first = 'One bounded experiment'; - const second = 'Beyond six months'; - const topics = ['Measurement','Baseline','Governance','Quality','Adoption','Maintenance']; + const first = '6 Months Roadmap'; + const second = 'Beyond 6 Months'; + const topics = ['Skills lifecycle reference','Measurement','Baseline','Governance','Quality','Adoption','Maintenance']; const metrics = JSON.parse(fs.readFileSync('research/ai-adoption/measurement-migration.json','utf8')).metrics; const childIds = [...metrics.map(m => m.docId),'measurement/collection-and-safeguards','measurement/synthetic-example']; const childTitles = [...metrics.map(m => m.title),'Collection and safeguards','Run the synthetic measurement example']; - const ids = ['target-operating-model','roadmap','stage-01-skills-adoption','measurement',...childIds,'baseline','skills-governance','skills-quality','skills-adoption','skills-maintenance','stage-02-autonomous-agent']; - const titles = ['First six months as AI Architect','Roadmap',first,'Measuring real output',...childTitles,'Baseline','Skills governance','Skills quality','Skills adoption','Skills maintenance',second]; + const ids = ['target-operating-model','roadmap','six-months-target','six-months-roadmap','stage-01-skills-adoption','measurement',...childIds,'baseline','skills-governance','skills-quality','skills-adoption','skills-maintenance','stage-02-autonomous-agent']; + const titles = ['Target','Roadmap','6 Months Target',first,'Skills lifecycle reference','Measuring real output',...childTitles,'Baseline','Skills governance','Skills quality','Skills adoption','Skills maintenance',second]; const browser = await chromium.launch({headless:true, executablePath:process.env.PLAYWRIGHT_CHROMIUM_EXECUTABLE, args:['--no-sandbox']}); const results = []; try { @@ -35,26 +35,26 @@ const fs = require('node:fs'); assert.equal((await page.goto(`${base}${prefix}roadmap/`, {waitUntil:'networkidle'})).status(), 200); let menu = await openMenu(); const visibleLabels = () => menu.locator('.menu__link').filter({visible:true}).allTextContents(); - assert.deepEqual(await visibleLabels(), ['Six-month strategy','Roadmap',first,second]); + assert.deepEqual(await visibleLabels(), ['Target','Roadmap','6 Months Target',first,second]); const category = menu.locator('.theme-doc-sidebar-item-category').filter({has:page.getByRole('link', {name:first, exact:true})}); const caret = category.locator(':scope > .menu__list-item-collapsible > button.menu__caret'); await caret.click(); await category.getByRole('link', {name:'Governance', exact:true}).waitFor({state:'visible'}); - assert.deepEqual(await visibleLabels(), ['Six-month strategy','Roadmap',first,...topics,second]); + assert.deepEqual(await visibleLabels(), ['Target','Roadmap','6 Months Target',first,...topics,second]); assert.deepEqual(await category.locator('ul .menu__link').filter({visible:true}).allTextContents(), topics); const measurement = category.locator('.theme-doc-sidebar-item-category').filter({has:page.getByRole('link', {name:'Measurement', exact:true})}); const reference = measurement.locator(':scope > .menu__list-item-collapsible > button.menu__caret'); await reference.focus(); await page.keyboard.press('Enter'); await category.getByRole('link', {name:'Validated task success', exact:true}).waitFor({state:'visible'}); - assert.deepEqual(await visibleLabels(), ['Six-month strategy','Roadmap',first,topics[0],...childTitles,...topics.slice(1),second]); + assert.deepEqual(await visibleLabels(), ['Target','Roadmap','6 Months Target',first,...topics.slice(0,2),...childTitles,...topics.slice(2),second]); await reference.click(); await page.screenshot({path:`${output}/${width}-expanded.png`, animations:'disabled'}); await caret.click(); await category.getByRole('link', {name:'Governance', exact:true}).waitFor({state:'hidden'}); - assert.deepEqual(await visibleLabels(), ['Six-month strategy','Roadmap',first,second]); + assert.deepEqual(await visibleLabels(), ['Target','Roadmap','6 Months Target',first,second]); await menu.getByRole('link', {name:first, exact:true}).click(); - await page.waitForURL(`${base}${prefix}stage-01-skills-adoption/`); + await page.waitForURL(`${base}${prefix}six-months-roadmap/`); await page.getByRole('heading', {level:1, name:first, exact:true}).waitFor(); assert.equal(await page.locator('h1').innerText(), first); assert((await page.locator('article').innerText()).includes('Delivery first')); @@ -71,11 +71,11 @@ const fs = require('node:fs'); else assert.equal(await prev.count(), 0); if (index < ids.length-1) assert.equal(await next.getAttribute('href'), `${prefix}${id === 'measurement' ? 'baseline' : ids[index+1]}/`); else assert.equal(await next.count(), 0); - if (index >= 3 && index < ids.length - 1) { - assert.equal(await page.locator('.breadcrumbs a').filter({hasText:first}).getAttribute('href'), `${prefix}stage-01-skills-adoption/`); + if (index >= 4 && index < ids.length - 1) { + assert.equal(await page.locator('.breadcrumbs a').filter({hasText:first}).getAttribute('href'), `${prefix}six-months-roadmap/`); menu = await openMenu(); - const expectedTopics = id === 'measurement' || id.startsWith('measurement/') ? [topics[0],...childTitles,...topics.slice(1)] : topics; - assert.deepEqual(await visibleLabels(), ['Six-month strategy','Roadmap',first,...expectedTopics,second]); + const expectedTopics = id === 'measurement' || id.startsWith('measurement/') ? [...topics.slice(0,2),...childTitles,...topics.slice(2)] : topics; + assert.deepEqual(await visibleLabels(), ['Target','Roadmap','6 Months Target',first,...expectedTopics,second]); if (id.startsWith('measurement/')) assert.equal(await page.locator('.breadcrumbs a').filter({hasText:'Measurement'}).getAttribute('href'), `${prefix}measurement/`); await closeMenu(); } diff --git a/scripts/browser/target-midpoints.cjs b/scripts/browser/target-midpoints.cjs index 0238da2..1f85dea 100644 --- a/scripts/browser/target-midpoints.cjs +++ b/scripts/browser/target-midpoints.cjs @@ -132,8 +132,6 @@ function inspectTypography({mobile}) { const page = await browser.newPage({viewport:{width,height:1000}}); await page.goto(`${base}/eldorado-v1/documentation/strategy/target-operating-model/`,{waitUntil:'networkidle'}); await page.addStyleTag({content:'html {scroll-behavior:auto !important;}'}); - await page.getByText('Conditional long-term Target operating model — not the six-month promise',{exact:true}).focus(); - await page.keyboard.press('Enter'); const panel = page.locator('[data-diagram="strategy-target"]'); const iframe = panel.locator(`:scope > .story-${width > 700 ? 'desktop' : 'mobile'}`); await iframe.scrollIntoViewIfNeeded(); diff --git a/scripts/connected-strategy.test.mjs b/scripts/connected-strategy.test.mjs index 7553024..18f76ff 100644 --- a/scripts/connected-strategy.test.mjs +++ b/scripts/connected-strategy.test.mjs @@ -7,9 +7,9 @@ const coverage=JSON.parse(read('research/ai-adoption/strategy-coverage.json')).r test('connected Strategy covers every canonical route and reader handoff',()=>{ const files=readdirSync('docs/strategy',{recursive:true}).filter(p=>p.endsWith('.mdx')).map(p=>'docs/strategy/'+p).sort(); - assert.equal(coverage.length,28); + assert.equal(coverage.length,30); assert.deepEqual(coverage.map(r=>r.source).sort(),files); - assert.equal(new Set(coverage.map(r=>r.route)).size,28); + assert.equal(new Set(coverage.map(r=>r.route)).size,30); for(const r of coverage){ for(const k of ['question','inputs','action_or_decision','output','next_or_feedback','review'])assert(r[k],`${r.source}: ${k}`); const page=read(r.source);assert(!/roadmap gates|Evidence-gated phases/.test(page),r.source); diff --git a/scripts/roadmap-viewer.mjs b/scripts/roadmap-viewer.mjs index 74d994f..96aa069 100644 --- a/scripts/roadmap-viewer.mjs +++ b/scripts/roadmap-viewer.mjs @@ -30,7 +30,7 @@ export function roadmapViewer(html, spec) { return `${lines.map((line,i) => `${escape(line)}`).join('')}`; }; if (!node.sublabel || node.tag || /Output:|Exit:|\n/.test(node.sublabel)) throw new Error(`Roadmap content contract drift: ${node.id}`); - const number = spec.nodes.length === 6 ? `Step ${index+1}` : spec.nodes[0].id === 'skills' ? ['Proposed M1–4','Proposed M5–6'][index] : index === 0 ? 'First' : 'If justified'; + const number = spec.nodes.length === 6 ? `Step ${index+1}` : spec.nodes[0].id === 'skills' ? ['Stage 1','Stage 2'][index] : index === 0 ? 'First' : 'If justified'; const content = text(number, 40, 26, 't-primary', 'data-stage-number="" font-weight="700"') + text(node.label, 88, 30, 't-primary', 'data-node-label="" font-weight="700"') + text(node.sublabel, 160, 26, 't-muted'); diff --git a/scripts/roadmap.test.mjs b/scripts/roadmap.test.mjs index 6fdb2e6..51be7c2 100644 --- a/scripts/roadmap.test.mjs +++ b/scripts/roadmap.test.mjs @@ -12,8 +12,8 @@ test('Roadmap has three visual levels and preserves human direction and Delivery const page = read('docs/strategy/roadmap.mdx'); const visible = page.split('
')[0]; assert.deepEqual([...visible.matchAll(/ m[1]), Object.keys(views)); - assert.deepEqual([...visible.matchAll(/^## (.+)$/gm)].map(m => m[1]), ['Six months, two investment decisions', 'Delivery first, replication only if earned', 'Keep one learning loop', 'Solo capacity and influence']); - for (const marker of ['Humans direct, guide and review throughout', 'current', 'AI-assisted practice', 'One active live pilot at a time', 'Month 1', 'Month 2', 'Month 3', 'Month 4', 'Month 5', 'Month 6', 'Delivery keeps improving', 'what skills exist, how they relate, when they are used and how they work together', 'codebase structure', 'existing principles', 'system-logic source', 'tests', 'builds and packaging', 'deployments', 'retain/change/hold/stop', './measurement/index.mdx', './target-operating-model.mdx']) assert(visible.includes(marker), marker); + assert.deepEqual([...visible.matchAll(/^## (.+)$/gm)].map(m => m[1]), ['Two stages toward the long-term Target', 'Stage 1: Delivery first', 'Improve within each phase', 'Delivery in practice']); + for (const marker of ['Humans direct, guide and review throughout', 'standardizes skills', 'foundation for Stage 2', 'future Autonomous Agent', 'not deployed autonomy', 'order is not yet decided', 'Delivery keeps improving', 'not as six global roadmap stages', 'what skills exist, how they relate, when they are used and how they work together', 'codebase structure', 'existing principles', 'system-logic source', 'tests', 'builds and packaging', 'deployments', 'practices, tooling, controls and problems', 'metrics/KPIs and a baseline', 'friction and feedback', './measurement/index.mdx', './target-operating-model.mdx']) assert(visible.includes(marker), marker); for (const marker of ['revocation','exact-artifact approvals','idempotency','human takeover','sensitive decisions','security findings','reproducible baseline']) assert(page.includes(marker), marker); assert(!/## [1-5]\.|Prepare foundations|Sustain and improve/.test(page)); }); diff --git a/scripts/sdlc-cycle.test.mjs b/scripts/sdlc-cycle.test.mjs index 2161ee2..534b15d 100644 --- a/scripts/sdlc-cycle.test.mjs +++ b/scripts/sdlc-cycle.test.mjs @@ -4,21 +4,15 @@ import {readFileSync} from 'node:fs'; const read = p => readFileSync(p, 'utf8'); const stages = ['Scope', 'Architecture', 'UI/UX', 'Planning', 'Delivery', 'UAT', 'Security', 'Releases']; -test('Strategy opens at the assignment and retains autonomy only as a conditional reference', () => { - assert.match(read('sidebars/strategy.ts'), /strategySidebar:\s*\[\s*'target-operating-model',\s*'roadmap'/); - assert.match(read('docs/strategy/target-operating-model.mdx'), /^sidebar_label: Six-month strategy$/m); - for (const id of ['target-operating-model']) { - const page = read(`docs/strategy/${id}.mdx`); - const primary = page.split('
')[0]; - assert(primary.includes('name="strategy-six-months"')); - assert(!primary.includes('name="strategy-target"')); - assert(page.includes('Conditional long-term Target operating model')); - assert(page.includes('Scope → Architecture → UI/UX → Planning → Delivery → UAT → Security → Releases → Scope')); - assert(page.includes('human-controlled AI Agent')); - assert(!/code[ -]agent/i.test(page)); - assert(primary.includes('Proposed strategy')); - assert(!/only routes|People authorize|independent gates protect release/.test(primary)); - } +test('Strategy opens at the long-term Target and separates the six-month contribution', () => { + const page=read('docs/strategy/target-operating-model.mdx'); + const primary=page.split('
')[0]; + assert.match(page, /^title: Target$/m); + assert.match(page, /^sidebar_label: Target$/m); + assert(primary.includes('name="strategy-target"')); + assert(!primary.includes('name="strategy-six-months"')); + for(const marker of ['not a six-month commitment or present authorization','Scope → Architecture → UI/UX → Planning → Delivery → UAT → Security → Releases → Scope','human-controlled AI Agent','Humans direct, guide and review','./six-months-target.mdx','./six-months-roadmap.mdx']) assert(primary.includes(marker),marker); + assert(!page.includes('conditional long-term option')); }); test('both target diagrams have eight stages, eight governed phases and eight human-controlled contributors', () => { diff --git a/scripts/strategy-navigation.test.mjs b/scripts/strategy-navigation.test.mjs index 19c64f6..fa93cb8 100644 --- a/scripts/strategy-navigation.test.mjs +++ b/scripts/strategy-navigation.test.mjs @@ -10,10 +10,11 @@ test('Strategy has Target, Roadmap, a linked Skills Adoption category and Autono const sandbox = {exports:{}}; runInNewContext(compiled, sandbox); const sidebar = JSON.parse(JSON.stringify(sandbox.exports.default.strategySidebar)); - assert.deepEqual(sidebar, ['target-operating-model', 'roadmap', { - type:'category', label:'One bounded experiment', - link:{type:'doc', id:'stage-01-skills-adoption'}, collapsed:true, + assert.deepEqual(sidebar, ['target-operating-model', 'roadmap', 'six-months-target', { + type:'category', label:'6 Months Roadmap', + link:{type:'doc', id:'six-months-roadmap'}, collapsed:true, items:[ + 'stage-01-skills-adoption', {type:'category', label:'Measurement', collapsed:true, link:{type:'doc', id:'measurement/index'}, items:[ ...JSON.parse(read('research/ai-adoption/measurement-migration.json')).metrics.map(m => m.docId), 'measurement/collection-and-safeguards','measurement/synthetic-example', @@ -26,7 +27,7 @@ test('Strategy has Target, Roadmap, a linked Skills Adoption category and Autono ], }, 'stage-02-autonomous-agent']); - assert.match(read('docs/strategy/target-operating-model.mdx'), /^sidebar_label: Six-month strategy$/m); + assert.match(read('docs/strategy/target-operating-model.mdx'), /^sidebar_label: Target$/m); assert.match(read('docusaurus.config.ts'), /type: 'docSidebar', docsPluginId: 'strategy', sidebarId: 'strategySidebar', label: 'Strategy'/); }); @@ -34,8 +35,8 @@ test('stage overviews explain the foundation and future without replacing topic const first = read('docs/strategy/stage-01-skills-adoption.mdx'); const second = read('docs/strategy/stage-02-autonomous-agent.mdx'); for (const [id, title, page] of [ - ['stage-01-skills-adoption', 'One bounded experiment', first], - ['stage-02-autonomous-agent', 'Beyond six months', second], + ['stage-01-skills-adoption', 'Skills lifecycle reference', first], + ['stage-02-autonomous-agent', 'Beyond 6 Months', second], ]) { assert(page.includes(`id: ${id}\ntitle: ${title}`)); for (const link of ['./roadmap.mdx', './target-operating-model.mdx']) assert(page.includes(link)); diff --git a/scripts/strategy.test.mjs b/scripts/strategy.test.mjs index b6ad52a..73c0751 100644 --- a/scripts/strategy.test.mjs +++ b/scripts/strategy.test.mjs @@ -6,7 +6,7 @@ const model = JSON.parse(read('research/ai-adoption/strategy-model.json')); test('seven existing strategy pages and two stage overviews preserve canonical routes', () => { assert.equal(model.pages.length, 7); assert.deepEqual(readdirSync('docs/strategy').filter(p => p.endsWith('.mdx')).sort(), - [...model.pages.filter(p => p.id !== 'measurement').map(({id}) => `${id}.mdx`), 'stage-01-skills-adoption.mdx', 'stage-02-autonomous-agent.mdx', 'baseline.mdx'].sort()); + [...model.pages.filter(p => p.id !== 'measurement').map(({id}) => `${id}.mdx`), 'stage-01-skills-adoption.mdx', 'stage-02-autonomous-agent.mdx', 'baseline.mdx', 'six-months-target.mdx', 'six-months-roadmap.mdx'].sort()); for (const {id} of model.pages) { const page = read(`docs/strategy/${id === 'measurement' ? 'measurement/index' : id}.mdx`); assert(page.includes(`id: ${id === 'measurement' ? 'index' : id}`)); diff --git a/scripts/target-caption.mjs b/scripts/target-caption.mjs index f800505..645689f 100644 --- a/scripts/target-caption.mjs +++ b/scripts/target-caption.mjs @@ -1,4 +1,4 @@ -// Caption the retained optional target without changing its native topology. +// Caption the long-term target without changing its native topology. // Text lives inside the SVG so standalone exports retain proposal/line semantics. export function targetCaption(html) { const roots = [...html.matchAll(/]*role="img"[^>]*>/g)]; @@ -8,7 +8,7 @@ export function targetCaption(html) { if (!match) throw new Error('Target caption requires viewBox'); const [x,y,w,h] = match[1].trim().split(/\s+/).map(Number); const size = Math.min(26, w / 30); - const lines = ['Proposed optional target — not a six-month commitment', + const lines = ['Long-term Target — not a six-month commitment', 'Solid: lifecycle · Dotted: execution / governance', 'Dashed: human-controlled contributions']; const extra = size * 5; const caption = `${lines.map((line,i) => `${line}`).join('')}`; diff --git a/scripts/verify.mjs b/scripts/verify.mjs index ea95199..da43479 100644 --- a/scripts/verify.mjs +++ b/scripts/verify.mjs @@ -27,15 +27,17 @@ if (process.argv.includes('--build')) { assert(redirect.includes('/eldorado-v1/documentation/strategy/target-operating-model/')); assert(redirect.includes('window.location.href') && redirect.includes('http-equiv="refresh"') && !redirect.includes('archify-panel'), 'Landing must redirect, not duplicate Target'); const strategyPages = [...model.pages, - {id:'stage-01-skills-adoption', title:'One bounded experiment'}, + {id:'six-months-target', title:'6 Months Target'}, + {id:'six-months-roadmap', title:'6 Months Roadmap'}, + {id:'stage-01-skills-adoption', title:'Skills lifecycle reference'}, {id:'baseline', title:'Baseline'}, - {id:'stage-02-autonomous-agent', title:'Beyond six months'}, + {id:'stage-02-autonomous-agent', title:'Beyond 6 Months'}, ]; for (const {id, title} of strategyPages) { const route = `strategy/${id === 'index' ? '' : `${id}/`}index.html`; const page = read(join('build',route)); assert(page.includes(title), route); - if (!id.startsWith('stage-')) assert(page.includes('Target operating model'), route); + if (!id.startsWith('stage-') && !id.startsWith('six-months-')) assert(page.includes('Target operating model'), route); assert(indexes.includes(title), `Missing indexed Strategy page: ${id}`); for (const match of page.matchAll(/href="(\/eldorado-v1\/documentation\/[^"?#]*)/g)) { const local = decodeURIComponent(match[1].replace('/eldorado-v1/documentation/','')); diff --git a/sidebars/strategy.ts b/sidebars/strategy.ts index 6deae55..3a968f3 100644 --- a/sidebars/strategy.ts +++ b/sidebars/strategy.ts @@ -3,12 +3,14 @@ export default { strategySidebar: [ 'target-operating-model', 'roadmap', + 'six-months-target', { type: 'category', - label: 'One bounded experiment', - link: {type: 'doc', id: 'stage-01-skills-adoption'}, + label: '6 Months Roadmap', + link: {type: 'doc', id: 'six-months-roadmap'}, collapsed: true, items: [ + 'stage-01-skills-adoption', { type: 'category', label: 'Measurement', collapsed: true, link: {type: 'doc', id: 'measurement/index'}, -- 2.54.0 From f23bf1c5f43c3fd72433af6e82a0c1a3ce6a89d8 Mon Sep 17 00:00:00 2001 From: Jarvis Jr Hermes Date: Thu, 8 Oct 2026 18:14:45 +0000 Subject: [PATCH 2/3] docs: align published presentation and verify horizon source traceability --- .../less-prompting-more-shipping/README.md | 6 +-- .../less-prompting-more-shipping/slides.mjs | 38 +++++++++---------- research/ai-adoption/horizon-evidence.md | 19 ++++++++++ scripts/browser/roadmap-timeline.cjs | 4 +- scripts/browser/roadmap.cjs | 4 +- scripts/build-presentations.mjs | 9 ++++- scripts/presentation.test.mjs | 8 ++++ 7 files changed, 60 insertions(+), 28 deletions(-) create mode 100644 research/ai-adoption/horizon-evidence.md diff --git a/presentations/less-prompting-more-shipping/README.md b/presentations/less-prompting-more-shipping/README.md index b76e031..d3186b9 100644 --- a/presentations/less-prompting-more-shipping/README.md +++ b/presentations/less-prompting-more-shipping/README.md @@ -1,6 +1,6 @@ -# Less Prompting, More Shipping — v1.0.0 +# Less Prompting, More Shipping — v1.0.1 -An explanation for the CTO and engineering leads: decide how a solo AI Architect should invest the first six months. The original `AI_Architect_Test_Task.pdf` governs the content. Read together with the reviewed Strategy at revision `fcaa84f3bf9058f4ede0a097d16d0e3571590a6b`; it is not a second Strategy landing page. +An explanation for the CTO and engineering leads: decide how a solo AI Architect should invest the first six months. The original `AI_Architect_Test_Task.pdf` governs the assignment content. Read with the same-build Strategy: **Target → Roadmap → 6 Months Target → 6 Months Roadmap → Beyond 6 Months**. The six-month contribution does not replace the long-term human-controlled autonomous SDLC destination or authorize its execution. The source map records exact source-document hashes, the historical long-term/assignment origins and correction authority; it does not mislabel a historical revision as current. This is not a second Strategy landing page. ## Source and build @@ -19,7 +19,7 @@ Print opens `?print-pdf`: use Chromium, landscape, no margins and background gra ## Verify -`pnpm test:presentation -- http://127.0.0.1:4180` against a prefix-correct static server runs 19 slides at desktop, portrait and landscape, checks bounds/errors/local links, refresh/hash, keyboard, touch, overview, notes popup, fullscreen, homepage integration and 19-page print layout. It writes ordered, individual PNGs plus JSON and a print diagnostic to `.cache/presentation/`. Set `PLAYWRIGHT_CHROMIUM_EXECUTABLE` if using an installed Chromium rather than Playwright's default binary. Inspect every slide individually after the final build. Local Docusaurus serve on Node26 incorrectly redirects WOFF2 paths with a trailing slash in this environment; use a regular static server for production-equivalent font verification, not missing-font screenshots. +`pnpm test:presentation http://127.0.0.1:4180` against a prefix-correct static server runs 19 slides at desktop, portrait and landscape, checks bounds/errors/local links, refresh/hash, keyboard, touch, overview, notes popup, fullscreen, homepage integration and 19-page print layout. It writes ordered, individual PNGs plus JSON and a print diagnostic to `.cache/presentation/`. Set `PLAYWRIGHT_CHROMIUM_EXECUTABLE` if using an installed Chromium rather than Playwright's default binary. Inspect every slide individually after the final build. Local Docusaurus serve on Node26 incorrectly redirects WOFF2 paths with a trailing slash in this environment; use a regular static server for production-equivalent font verification, not missing-font screenshots. Official implementation references: https://revealjs.com/installation/, https://revealjs.com/speaker-view/, https://revealjs.com/pdf-export/. The pinned 5.2.1 package is intentional; consult its runtime for API compatibility rather than assuming the current documentation's latest-version distribution paths. License is MIT; notes is bundled from `plugin/notes/notes.js`. diff --git a/presentations/less-prompting-more-shipping/slides.mjs b/presentations/less-prompting-more-shipping/slides.mjs index 877492d..3de0c1c 100644 --- a/presentations/less-prompting-more-shipping/slides.mjs +++ b/presentations/less-prompting-more-shipping/slides.mjs @@ -1,23 +1,23 @@ // Editorial source: concise visible story + spoken argument + traceable references. const s = (id, title, minutes, body, notes, sources, kind='') => ({id,title,minutes,body,notes,sources,kind}); export const slides = [ - s('opening','Less Prompting,
More Shipping',1,`

The AI Architect’s First Six Months

Improve accepted engineering work.
Not the number of times we ask AI.

Proposed strategy · 35 minutes + 15 minutes Q&A

`, 'Open with the outcome, not a tool purchase. The title is a reminder to measure useful work, not an instruction to minimize prompts. More careful prompting may be exactly what good work needs. My proposal is to earn one evidence-backed improvement, make its costs visible, and stop what does not help. Walk through what I do, how I measure, what month six looks like and what comes next.', ['PDF: Format; Context; questions 1–4','target-operating-model'], 'dark'), - s('starting-point','We are not starting from “no AI”.',2,`
≈80 → ≈100engineers, by year end
>10teams
Already using AIuneven depth and quality

Assignment facts
Solo architect → CTO
No formal authority over teams

Unknown until discovery
Stack, tools, process, baselines
Capacity and actual bottlenecks

`, 'These headcount and usage facts are from the assignment, not independent research. The comparison is existing AI-assisted practice, never an invented no-AI baseline. Delivery is a starting hypothesis, not a finding. The documented departmental model is not evidence of actual assignment staffing. Ask about stack and tool/data restrictions in discovery; do not assume familiar clients are in use. Every timeline and proposed allocation in this deck remains subject to agreement.', ['PDF: Context; question 1; final assumptions instruction','target-operating-model']), - s('north-star','A faster draft is not a shipped outcome.',2,`
Intent→Change + tests→Independent acceptance
Existing release authority stays with people.

Less rework. Sound quality.
Understand the total burden.

If the bottleneck is CI or review capacity, fix that—not the prompt count.

`, 'Trace a change through acceptance and its existing release route. An agent can shorten drafting and still make reviewers work harder. The outcome must survive independent acceptance, defect follow-up and total-cost accounting. Observe why work comes back rather than assume more output from the model means more output from engineering. Flaky tests, unclear scope or scarce reviewers may make a non-AI intervention the right investment.', ['target-operating-model','baseline','measurement']), - s('influence','Influence is earned beside the work.',2,`
CTOSponsor access
Resolve priority trade-offs
ArchitectPair, build, evaluate
Bring evidence—not mandates
Willing teamAgree contribution
Own acceptance and upkeep

An invitation with an exit.
Not a rollout disguised as a favor.

`, 'Meet leads, developers and reviewers across contrasting workflows before recruiting one willing team. Show a concrete example to a skeptic and invite them to judge it without requiring enrollment. Agree a short weekly team check-in and a monthly CTO decision review. Record participant and reviewer effort: it is not free labor. If priorities conflict, ask the CTO to choose a trade-off rather than use sponsorship as a compliance escalation. Actual approvers must be named before a pilot.', ['roadmap','stage-01-skills-adoption']), - s('months-one-two','Months 1–2 / Earn the right to test.',3,`
01 · Discover

Trace real changes.
Rank friction and evidence gaps.

Output: current-work map
02 · Agree

One willing team.
Baseline + smallest intervention.

Output: bounded experiment packet
Decision 1 → Fund one experiment—or hold.

No partner, reliable checks or lawful evidence → no live pilot.

`, 'In month one agree expectations and access with the CTO, pair on contrasting workflows and trace repository principles, system logic, tests, builds and deployments. Rank bottlenecks, not teams. Month two observes a prospective baseline and compares context, coaching, test feedback, deterministic automation and skills. Agree task eligibility, acceptance, evidence, people, spend/effort limits and a stop date. The experiment packet can be one worksheet plus existing records. Discovery may need to continue; the calendar does not waive prerequisites.', ['roadmap','baseline']), - s('months-three-four','Months 3–4 / Test, then decide.',3,`
03 · Work alongside

Build and independently qualify.
Pair on bounded real work.

Output: failures + reproducible examples
04 · Compare

Reconcile outcomes and burden.
Include pending and abandoned work.

Output: retain / change / hold / stop
Decision 2 → Keep only what the evidence supports.

Missing follow-up is “unknown”, not “all clear”.

`, 'Qualification precedes exposure to real work; actual pilot permission is a separate human decision. During month three I pair and collect both benefits and transferred work. Month four compares matured cohorts with the reviewer, records task mix and concurrent changes, and gives the owner and CTO a recommendation. Unsafe work stops immediately. Sparse tasks or missing follow-up make the result inconclusive. Only an explicitly approved bounded extension can continue; otherwise narrow or stop. Do not silently convert a feasibility exercise into a rollout.', ['roadmap','stage-01-skills-adoption']), - s('months-five-six','Months 5–6 / Transfer only if earned.',2,`
05 · Selective transfer

Champion + backup.
Check a second team’s fit.

Only with capacity and funded upkeep
06 · Evidence review

Team operates without daily help.
CTO chooses the next investment.

Owned workflow—or documented stop

New scope → new baseline.
No automatic company-wide rollout.

`, 'A second team is conditional: willingness, different task mix and support capacity can all change the answer. Keep improving the first workflow if transfer is premature. Hand over a reproducible example, support and recovery instructions to an actual owner and backup. Test operation without my daily assistance rather than treating training attendance as handover. Month six must show limits and stopped work as well as retained value. The CTO decides what is worth funding next.', ['roadmap','target-operating-model']), - s('capacity','One architect. One active live pilot.',2,`
2 days
Pair + build
1 day
Evaluate
1 day
Relationships
1 day
Decisions + buffer

Support is work.
Put it in the budget.

Proposed capacity envelope—not known company availability.

`, 'This five-day allocation is a planning envelope, not a claim about company staffing. Two days are hands-on, one evaluation, one coaching/relationships, one sponsor decisions, support and contingency. Team lead agreement must include review time. A second team begins only when the first is supportable. Offer reusable examples and bounded office hours, not a permanent help desk to more than ten teams. Excess support demand becomes a CTO investment decision or a smaller scope.', ['roadmap']), - s('measures','Three measures. One decision.',3,`
Accepted workAccepted / all matured eligible starts
Review + reworkComparable effort, including shifted burden
Escaped defectsSeverity and complete follow-up
Alongside: setup, support, upkeep and tool cost. Critical effects stop work.

Task / PR / CI / defect links + a small effort record; no individual league tables.

`, 'Use a small balanced set matched to the mechanism, not all sixteen optional metric contracts. Predeclare eligibility, maturity horizons, denominator and follow-up. Register every eligible task start, including failures, abandoned work and unresolved matured starts; pending tasks stay separate. Link tasks to exact PR/CI acceptance and defect records, with a minimal effort log. Record checked reasons for returns, such as missing regression evidence. Agree access, purpose and retention; avoid raw prompt collection and individual performance ranking. Show total setup and recurring cost beside outcomes. If linkage is incomplete, hold the claim.', ['measurement','stage-01-skills-adoption']), - s('misleading','A dashboard can be confidently wrong.',2,`

Tempting signal
More PRs or generated lines
Shorter PR elapsed time
Higher acceptance rate
No defects recorded

Question before believing it
Useful work—or smaller slices?
Less effort—or less waiting?
Same task mix and denominator?
Enough follow-up and linkage?

AI usage is diagnostic.
It is not the score.

`, 'Invocation counts, licenses and positive sentiment can help diagnose reach or friction, but are not productivity outcomes. Acceptance changes may reflect selection and learning; stratify by complexity and reviewer availability and record concurrent model/tool/CI changes. Elapsed time is not engineer hours. Missing quality records are not zero defects. Small descriptive samples cannot establish causal ROI; agree uncertainty and precision rules before collecting evidence for a promotion claim. Do not annualize a tiny difference into cash savings.', ['measurement','stage-01-skills-adoption']), - s('experiment','EXP-01 / Start cheaper than a platform.',2,`

Fictional teaching example · not Eldorado data or approval

Review returns:
missing test evidence
→Test map +
checklist first
→Skill only if
context loss persists

Small bug fixes. One repository.
Current AI practice is the comparator.

Exclude secrets, personal data, migrations and production permissions.

`, 'Keep one example from baseline to decision. Suppose changes repeatedly lack regression evidence. Compare a repository test map plus review checklist against packaging the same guidance as a skill; the cheaper checklist wins if it performs as well. A skill carries reusable instructions and verification, not authority. Freeze a small non-urgent bug-fix scope, one willing team and one qualified client/model tuple. The full fictional packet includes explicit real-use blanks for people, dates, immutable references, sources and data approval. Those blanks are not permission.', ['stage-01-skills-adoption']), - s('qualification','“It worked once” is not a release gate.',2,`
Pin candidate
and environment
→Independent
qualification
→Separate
pilot permission

Try to break it
Wrong task · injected instruction
Missing tests · recovery

First revision
No approved prior skill = N/A
Remove + reload → current practice

Failed mandatory safety checks → HOLD. An average cannot override them.
`, 'The author cannot approve their own evidence or deployment. Test representative work, unrelated-task decline, injected instructions to bypass review, missing-test escalation, and removal/reload recovery. These examples are not a complete risk-tier evaluation suite. A real independent reviewer approves a risk-appropriate design and inspects all results. First-revision regression against an approved skill is N/A, not a fake pass; prove recovery to declared existing AI-assisted practice. The actual workflow approver separately authorizes the exact revision/client, cohort, window, expiry and effects. Security/data boundaries need their actual owners. Later revision changes return to qualification.', ['stage-01-skills-adoption','skills-quality']), - s('inconclusive','First review / Do not promote this result.',2,`

EXP-01 · fictional observations · not company performance

EvidenceBaselinePilot, first review
Accepted / matured starts8 / 129 / 12
Effort records12 / 129 / 12 only
Mature defect follow-up8 / 8 accepted6 / 9 accepted
INCONCLUSIVE → Hold expansion. Finish evidence—or stop.

Three later starts remain pending. Missing evidence is not zero cost.

`, 'The apparent nine versus eight accepted is not a demonstrated gain. Baseline has two failed, one abandoned and one unresolved; pilot has one of each. Three later starts have not matured and stay out of the matured denominator. At first review pilot effort median is 35 minutes among observed rows only, not the whole cohort. One non-severe baseline defect is known; pilot defect follow-up is incomplete. A tiny sample, different mix and learning also limit inference. The fictional owner may authorize one two-week evidence-only extension with no new starts, at most four architect hours, two reviewer hours and EUR25 additional spend. If reconciliation cannot finish, stop rather than keep extending.', ['stage-01-skills-adoption']), - s('stop','A useful answer can be “stop this one”.',2,`

EXP-01 · fictional reconciled burden · not a causal productivity estimate

30 minBaseline median review / rework
→
40 minPilot median, all 12 records

The predeclared burden guardrail is breached.

Stop candidate → verify recovery → keep useful checklist → requalify any revision
`, 'Assume reconciliation finds a 40-minute median against 30 baseline for comparable work, with reviewers tracing extra effort to checking generated tests. This breaches the fictional no-increase burden guardrail even with nine accepted tasks. It is sufficient for a local stop decision, not statistical proof the intervention fails everywhere. Remove/reload and verify current-practice recovery; preserve evidence and useful test map/checklist. Return failure cases to the author. Retain would require different evidence: complete comparable outcomes and costs, acceptable quality/burden, agreed precision, independent acceptance and funded upkeep. A new revision must requalify. Critical unauthorized effects stop immediately, not at the scheduled review.', ['stage-01-skills-adoption']), - s('month-six','Month six / An evidence portfolio, not a victory lap.',2,`
Visible changeEvidence to ask for
One workflow understoodMap + baseline + explicit gaps
Retained practice—or justified stopComparable outcomes + costs + limits
Less dependence on the architectOwner + backup + recovery rehearsal

Proposed achievable picture. No guaranteed savings, headcount reduction or org-wide uplift.

`, 'Commit to activities I can drive: discovery, agreement, hands-on support, reproducible evidence and clear decisions. Do not promise a positive effect outside my control. A realistic month-six organization has one bounded workflow learned from, transparent limitations, some reusable examples and an owner if anything is retained. A second willing team may have a new baseline, not a blanket rollout. If experiments stop, explain what was ruled out, what remains useful and why the next investment changes. Independent source-linked evidence, not a polished demo or attendance count, backs the picture.', ['target-operating-model','roadmap']), - s('beyond','Beyond six months / Choose, do not graduate.',2,`
Deepen

Coaching, context or deterministic tooling where friction remains.

Transfer

Only with repeatable value, local fit and supported ownership.

Bounded autonomy?

Separate authority case, containment and human takeover.

More authority is a new decision.
Not a reward for adoption.

`, 'The next quarter may deepen the existing workflow or stop expansion entirely. Skills remain optional; no catalog or central control platform is a prerequisite. Transfer needs new-scope baseline and local capacity. Consider bounded autonomy only if it solves an evidenced bottleneck and controls are proven: exact-artifact approvals, scoped identity, idempotency, audit, independent stop and takeover. People retain product, risk and release decisions. The conditional long-term Target is a reference, not a month-six deliverable or deployed system. The CTO chooses investment based on the evidence, not an inevitable maturity staircase.', ['stage-02-autonomous-agent','target-operating-model']), - s('alignment','The first CTO conversation',1,`
  1. Which outcome is worth improving first?
  2. Who can volunteer time—and independent review?
  3. What data, risk and effort limits apply?
  4. When will we decide to continue or stop?

Sponsor the learning.
Do not pre-approve the answer.

`, 'Close with concrete alignment, not a shopping list. Ask the CTO to agree an outcome, access to willing teams, independent review capacity, risk/data boundary and decision cadence. Agree success and stop criteria before collecting favorable anecdotes. We have covered the four assignment questions: action, measurement, realistic six-month evidence and conditional next investment. Transition to the fifteen-minute discussion. If time runs short, skip detail in narration rather than the decision and its limits.', ['PDF: questions 1–4','roadmap'], 'dark'), - s('discussion','Q&A / What would change your mind?',15,`

15 minutes for the hard questions.

No willing team?

Too little evidence?

A cheaper non-AI fix?

The proposed plan can change. The evidence standard should not.

`, 'Reserve the full fifteen minutes. If no team volunteers, revisit the problem and sponsor trade-offs rather than conscript people. If evidence is sparse, narrow the question, explicitly authorize a bounded evidence-completion window or stop. If deterministic tooling is better, choose it. Discuss the company’s real constraints rather than pretend the fictional example estimates company benefit. The next slide provides linked sources for follow-up, not additional spoken content.', ['PDF: Format','target-operating-model'], 'dark'), - s('references','References / Follow the evidence.',0,``, 'Appendix, zero planned talk time. The original assignment is the supplied AI_Architect_Test_Task.pdf. The source-reference map in this presentation directory records every slide against the PDF and reviewed Strategy. The deck does not reproduce the assignment file publicly. EXP-01 remains entirely fictional; its budget, medians, samples and outcomes are teaching devices. Official Reveal documentation consulted: installation, speaker-view and pdf-export on revealjs.com. All runtime assets are pinned and bundled locally.', ['PDF: complete assignment','target-operating-model','roadmap','stage-01-skills-adoption','measurement','stage-02-autonomous-agent']) + s('opening','Less Prompting,
More Shipping',1,`

The AI Architect’s First Six Months

Improve accepted engineering work.
Not the number of times we ask AI.

Proposed strategy · 35 minutes + 15 minutes Q&A

`, 'Open with the outcome, not a tool purchase. The title is a reminder to measure useful work, not an instruction to minimize prompts. More careful prompting may be exactly what good work needs. My proposal is to earn one evidence-backed improvement, make its costs visible, and stop what does not help. Walk through what I do, how I measure, what month six looks like and what comes next.', ['PDF: Format; Context; questions 1–4','six-months-target'], 'dark'), + s('starting-point','We are not starting from “no AI”.',2,`
≈80 → ≈100engineers, by year end
>10teams
Already using AIuneven depth and quality

Assignment facts
Solo architect → CTO
No formal authority over teams

Unknown until discovery
Stack, tools, process, baselines
Capacity and actual bottlenecks

`, 'These headcount and usage facts are from the assignment, not independent research. The comparison is existing AI-assisted practice, never an invented no-AI baseline. Delivery is a starting hypothesis, not a finding. The documented departmental model is not evidence of actual assignment staffing. Ask about stack and tool/data restrictions in discovery; do not assume familiar clients are in use. Every timeline and proposed allocation in this deck remains subject to agreement.', ['PDF: Context; question 1; final assumptions instruction','six-months-target']), + s('north-star','A faster draft is not a shipped outcome.',2,`
Intent→Change + tests→Independent acceptance
Existing release authority stays with people.

Less rework. Sound quality.
Understand the total burden.

If the bottleneck is CI or review capacity, fix that—not the prompt count.

`, 'Trace a change through acceptance and its existing release route. An agent can shorten drafting and still make reviewers work harder. The outcome must survive independent acceptance, defect follow-up and total-cost accounting. Observe why work comes back rather than assume more output from the model means more output from engineering. Flaky tests, unclear scope or scarce reviewers may make a non-AI intervention the right investment.', ['six-months-target','baseline','measurement']), + s('influence','Influence is earned beside the work.',2,`
CTOSponsor access
Resolve priority trade-offs
ArchitectPair, build, evaluate
Bring evidence—not mandates
Willing teamAgree contribution
Own acceptance and upkeep

An invitation with an exit.
Not a rollout disguised as a favor.

`, 'Meet leads, developers and reviewers across contrasting workflows before recruiting one willing team. Show a concrete example to a skeptic and invite them to judge it without requiring enrollment. Agree a short weekly team check-in and a monthly CTO decision review. Record participant and reviewer effort: it is not free labor. If priorities conflict, ask the CTO to choose a trade-off rather than use sponsorship as a compliance escalation. Actual approvers must be named before a pilot.', ['six-months-roadmap','six-months-roadmap']), + s('months-one-two','Months 1–2 / Earn the right to test.',3,`
01 · Discover

Trace real changes.
Rank friction and evidence gaps.

Output: current-work map
02 · Agree

One willing team.
Baseline + smallest intervention.

Output: bounded experiment packet
Decision 1 → Fund one experiment—or hold.

No partner, reliable checks or lawful evidence → no live pilot.

`, 'In month one agree expectations and access with the CTO, pair on contrasting workflows and trace repository principles, system logic, tests, builds and deployments. Rank bottlenecks, not teams. Month two observes a prospective baseline and compares context, coaching, test feedback, deterministic automation and skills. Agree task eligibility, acceptance, evidence, people, spend/effort limits and a stop date. The experiment packet can be one worksheet plus existing records. Discovery may need to continue; the calendar does not waive prerequisites.', ['six-months-roadmap','baseline']), + s('months-three-four','Months 3–4 / Test, then decide.',3,`
03 · Work alongside

Build and independently qualify.
Pair on bounded real work.

Output: failures + reproducible examples
04 · Compare

Reconcile outcomes and burden.
Include pending and abandoned work.

Output: retain / change / hold / stop
Decision 2 → Keep only what the evidence supports.

Missing follow-up is “unknown”, not “all clear”.

`, 'Qualification precedes exposure to real work; actual pilot permission is a separate human decision. During month three I pair and collect both benefits and transferred work. Month four compares matured cohorts with the reviewer, records task mix and concurrent changes, and gives the owner and CTO a recommendation. Unsafe work stops immediately. Sparse tasks or missing follow-up make the result inconclusive. Only an explicitly approved bounded extension can continue; otherwise narrow or stop. Do not silently convert a feasibility exercise into a rollout.', ['six-months-roadmap','six-months-roadmap']), + s('months-five-six','Months 5–6 / Transfer only if earned.',2,`
05 · Selective transfer

Champion + backup.
Check a second team’s fit.

Only with capacity and funded upkeep
06 · Evidence review

Team operates without daily help.
CTO chooses the next investment.

Owned workflow—or documented stop

New scope → new baseline.
No automatic company-wide rollout.

`, 'A second team is conditional: willingness, different task mix and support capacity can all change the answer. Keep improving the first workflow if transfer is premature. Hand over a reproducible example, support and recovery instructions to an actual owner and backup. Test operation without my daily assistance rather than treating training attendance as handover. Month six must show limits and stopped work as well as retained value. The CTO decides what is worth funding next.', ['six-months-roadmap','six-months-target']), + s('capacity','One architect. One active live pilot.',2,`
2 days
Pair + build
1 day
Evaluate
1 day
Relationships
1 day
Decisions + buffer

Support is work.
Put it in the budget.

Proposed capacity envelope—not known company availability.

`, 'This five-day allocation is a planning envelope, not a claim about company staffing. Two days are hands-on, one evaluation, one coaching/relationships, one sponsor decisions, support and contingency. Team lead agreement must include review time. A second team begins only when the first is supportable. Offer reusable examples and bounded office hours, not a permanent help desk to more than ten teams. Excess support demand becomes a CTO investment decision or a smaller scope.', ['six-months-roadmap']), + s('measures','Three measures. One decision.',3,`
Accepted workAccepted / all matured eligible starts
Review + reworkComparable effort, including shifted burden
Escaped defectsSeverity and complete follow-up
Alongside: setup, support, upkeep and tool cost. Critical effects stop work.

Task / PR / CI / defect links + a small effort record; no individual league tables.

`, 'Use a small balanced set matched to the mechanism, not all sixteen optional metric contracts. Predeclare eligibility, maturity horizons, denominator and follow-up. Register every eligible task start, including failures, abandoned work and unresolved matured starts; pending tasks stay separate. Link tasks to exact PR/CI acceptance and defect records, with a minimal effort log. Record checked reasons for returns, such as missing regression evidence. Agree access, purpose and retention; avoid raw prompt collection and individual performance ranking. Show total setup and recurring cost beside outcomes. If linkage is incomplete, hold the claim.', ['measurement','six-months-roadmap']), + s('misleading','A dashboard can be confidently wrong.',2,`

Tempting signal
More PRs or generated lines
Shorter PR elapsed time
Higher acceptance rate
No defects recorded

Question before believing it
Useful work—or smaller slices?
Less effort—or less waiting?
Same task mix and denominator?
Enough follow-up and linkage?

AI usage is diagnostic.
It is not the score.

`, 'Invocation counts, licenses and positive sentiment can help diagnose reach or friction, but are not productivity outcomes. Acceptance changes may reflect selection and learning; stratify by complexity and reviewer availability and record concurrent model/tool/CI changes. Elapsed time is not engineer hours. Missing quality records are not zero defects. Small descriptive samples cannot establish causal ROI; agree uncertainty and precision rules before collecting evidence for a promotion claim. Do not annualize a tiny difference into cash savings.', ['measurement','six-months-roadmap']), + s('experiment','EXP-01 / Start cheaper than a platform.',2,`

Fictional teaching example · not Eldorado data or approval

Review returns:
missing test evidence
→Test map +
checklist first
→Skill only if
context loss persists

Small bug fixes. One repository.
Current AI practice is the comparator.

Exclude secrets, personal data, migrations and production permissions.

`, 'Keep one example from baseline to decision. Suppose changes repeatedly lack regression evidence. Compare a repository test map plus review checklist against packaging the same guidance as a skill; the cheaper checklist wins if it performs as well. A skill carries reusable instructions and verification, not authority. Freeze a small non-urgent bug-fix scope, one willing team and one qualified client/model tuple. The full fictional packet includes explicit real-use blanks for people, dates, immutable references, sources and data approval. Those blanks are not permission.', ['six-months-roadmap']), + s('qualification','“It worked once” is not a release gate.',2,`
Pin candidate
and environment
→Independent
qualification
→Separate
pilot permission

Try to break it
Wrong task · injected instruction
Missing tests · recovery

First revision
No approved prior skill = N/A
Remove + reload → current practice

Failed mandatory safety checks → HOLD. An average cannot override them.
`, 'The author cannot approve their own evidence or deployment. Test representative work, unrelated-task decline, injected instructions to bypass review, missing-test escalation, and removal/reload recovery. These examples are not a complete risk-tier evaluation suite. A real independent reviewer approves a risk-appropriate design and inspects all results. First-revision regression against an approved skill is N/A, not a fake pass; prove recovery to declared existing AI-assisted practice. The actual workflow approver separately authorizes the exact revision/client, cohort, window, expiry and effects. Security/data boundaries need their actual owners. Later revision changes return to qualification.', ['six-months-roadmap','skills-quality']), + s('inconclusive','First review / Do not promote this result.',2,`

EXP-01 · fictional observations · not company performance

EvidenceBaselinePilot, first review
Accepted / matured starts8 / 129 / 12
Effort records12 / 129 / 12 only
Mature defect follow-up8 / 8 accepted6 / 9 accepted
INCONCLUSIVE → Hold expansion. Finish evidence—or stop.

Three later starts remain pending. Missing evidence is not zero cost.

`, 'The apparent nine versus eight accepted is not a demonstrated gain. Baseline has two failed, one abandoned and one unresolved; pilot has one of each. Three later starts have not matured and stay out of the matured denominator. At first review pilot effort median is 35 minutes among observed rows only, not the whole cohort. One non-severe baseline defect is known; pilot defect follow-up is incomplete. A tiny sample, different mix and learning also limit inference. The fictional owner may authorize one two-week evidence-only extension with no new starts, at most four architect hours, two reviewer hours and EUR25 additional spend. If reconciliation cannot finish, stop rather than keep extending.', ['six-months-roadmap']), + s('stop','A useful answer can be “stop this one”.',2,`

EXP-01 · fictional reconciled burden · not a causal productivity estimate

30 minBaseline median review / rework
→
40 minPilot median, all 12 records

The predeclared burden guardrail is breached.

Stop candidate → verify recovery → keep useful checklist → requalify any revision
`, 'Assume reconciliation finds a 40-minute median against 30 baseline for comparable work, with reviewers tracing extra effort to checking generated tests. This breaches the fictional no-increase burden guardrail even with nine accepted tasks. It is sufficient for a local stop decision, not statistical proof the intervention fails everywhere. Remove/reload and verify current-practice recovery; preserve evidence and useful test map/checklist. Return failure cases to the author. Retain would require different evidence: complete comparable outcomes and costs, acceptable quality/burden, agreed precision, independent acceptance and funded upkeep. A new revision must requalify. Critical unauthorized effects stop immediately, not at the scheduled review.', ['six-months-roadmap']), + s('month-six','Month six / An evidence portfolio, not a victory lap.',2,`
Visible changeEvidence to ask for
One workflow understoodMap + baseline + explicit gaps
Retained practice—or justified stopComparable outcomes + costs + limits
Less dependence on the architectOwner + backup + recovery rehearsal

Proposed achievable picture. No guaranteed savings, headcount reduction or org-wide uplift.

`, 'Commit to activities I can drive: discovery, agreement, hands-on support, reproducible evidence and clear decisions. Do not promise a positive effect outside my control. A realistic month-six organization has one bounded workflow learned from, transparent limitations, some reusable examples and an owner if anything is retained. A second willing team may have a new baseline, not a blanket rollout. If experiments stop, explain what was ruled out, what remains useful and why the next investment changes. Independent source-linked evidence, not a polished demo or attendance count, backs the picture.', ['six-months-target','six-months-roadmap']), + s('beyond','Beyond six months / Choose, do not graduate.',2,`
Deepen

Coaching, context or deterministic tooling where friction remains.

Transfer

Only with repeatable value, local fit and supported ownership.

Toward autonomy

Separate authority case, containment and human takeover.

Long-term vision. Separate authority.
Not a month-six promise.

`, 'The next quarter may deepen the existing workflow or stop expansion entirely. Skills remain optional; no catalog or central control platform is a prerequisite. Transfer needs new-scope baseline and local capacity. Consider bounded autonomy only if it solves an evidenced bottleneck and controls are proven: exact-artifact approvals, scoped identity, idempotency, audit, independent stop and takeover. People retain product, risk and release decisions. The long-term destination remains human-directed, guided and reviewed autonomous SDLC. These six months contribute toward that vision, not replace it; they do not promise its timing or authorize its execution. The CTO chooses investment based on the evidence, not an inevitable maturity staircase.', ['stage-02-autonomous-agent','target-operating-model','roadmap','six-months-target']), + s('alignment','The first CTO conversation',1,`
  1. Which outcome is worth improving first?
  2. Who can volunteer time—and independent review?
  3. What data, risk and effort limits apply?
  4. When will we decide to continue or stop?

Sponsor the learning.
Do not pre-approve the answer.

`, 'Close with concrete alignment, not a shopping list. Ask the CTO to agree an outcome, access to willing teams, independent review capacity, risk/data boundary and decision cadence. Agree success and stop criteria before collecting favorable anecdotes. We have covered the four assignment questions: action, measurement, realistic six-month evidence and conditional next investment. Transition to the fifteen-minute discussion. If time runs short, skip detail in narration rather than the decision and its limits.', ['PDF: questions 1–4','six-months-roadmap'], 'dark'), + s('discussion','Q&A / What would change your mind?',15,`

15 minutes for the hard questions.

No willing team?

Too little evidence?

A cheaper non-AI fix?

The proposed plan can change. The evidence standard should not.

`, 'Reserve the full fifteen minutes. If no team volunteers, revisit the problem and sponsor trade-offs rather than conscript people. If evidence is sparse, narrow the question, explicitly authorize a bounded evidence-completion window or stop. If deterministic tooling is better, choose it. Discuss the company’s real constraints rather than pretend the fictional example estimates company benefit. The next slide provides linked sources for follow-up, not additional spoken content.', ['PDF: Format','six-months-target'], 'dark'), + s('references','References / Follow the evidence.',0,``, 'Appendix, zero planned talk time. The original assignment is the supplied AI_Architect_Test_Task.pdf. The source-reference map in this presentation directory records every slide against the PDF and reviewed Strategy. The deck does not reproduce the assignment file publicly. EXP-01 remains entirely fictional; its budget, medians, samples and outcomes are teaching devices. Official Reveal documentation consulted: installation, speaker-view and pdf-export on revealjs.com. All runtime assets are pinned and bundled locally.', ['PDF: complete assignment','six-months-target','six-months-roadmap','six-months-roadmap','measurement','stage-02-autonomous-agent']) ]; diff --git a/research/ai-adoption/horizon-evidence.md b/research/ai-adoption/horizon-evidence.md new file mode 100644 index 0000000..1ba2cfa --- /dev/null +++ b/research/ai-adoption/horizon-evidence.md @@ -0,0 +1,19 @@ +# Strategy horizons — correction evidence matrix + +Authority: user message `1557813737941901572` in Eldorado storm-v1. This correction restores the agreed long-term destination; it does not authorize autonomous execution. Original PDF read in full: Format, Context, all four questions and assumptions instruction; its existing SHA-256 remains in `assignment-evidence.json`. + +| Horizon / reader destination | Origin and preservation | Result / boundary | Verification | +| --- | --- | --- | --- | +| Target `/strategy/target-operating-model/` | Meaningful Target body restored from pre-PR38 `88a43757762114a506f57ed4b44484306cae1aaa`; original desktop/mobile `strategy-target` JSON unchanged | Human-directed/guided/reviewed autonomous SDLC is the long-term vision, not merely a competing optional destination. Eight lifecycle phases, central agent with eight governance spokes, eight outside human-controlled AI Agents; no fixed timing or present permission | `sdlc-cycle`, `target-midpoints`, `assignment` tests; real inline/fullscreen and complete light/dark exports | +| Roadmap `/strategy/roadmap/` | Original three-level body and six paired workflow JSON files restored from the same historical revision, then reconciled with intervention choice and new links | Skills/practices adoption → controlled autonomous capabilities; Delivery first, remaining phase order undecided, Delivery keeps improving. Evidence and separate human authority, not automatic graduation | `roadmap`, `roadmap-viewer`, browser `roadmap-timeline` | +| 6 Months Target `/strategy/six-months-target/` | PR38 assignment narrative moved out of Target, including the entire assumptions register and credible outcome conditions | PDF facts: close to80 engineers growing toward100, more than10 teams, everyone already using AI unevenly; solo CTO-reporting architect with no formal team authority. Actual stack/reporting/capacity unknown. First six months contribute toward—not replace—the destination | `assignment-evidence.json` maps all four PDF answers, format and assumptions to actual pages | +| 6 Months Roadmap `/strategy/six-months-roadmap/` | PR38 month1–6 action plan, influence/capacity and full EXP-01 packet preserved here as the single plan | One active pilot; independent checks; explicit effort limits, recovery, inconclusive extension and stop. EXP-01 remains fictional. No benefits, approvals or organization-wide rollout fabricated | Assignment markers; exact EXP-01 packet preservation; first-revision tests; browser six-month diagram controls and exports | +| Beyond 6 Months `/strategy/stage-02-autonomous-agent/` | Existing useful autonomy-stage content and diagram retained | Connect evidence-led next investments toward long-term vision; authority expands only through a separate case, scoped credentials, independent checks, stop/takeover and reopening on boundary changes | Connected-strategy tests and actual reader handoffs | +| Nested lifecycle and references | Stage01 URL retained as concise lifecycle reference beneath 6 Months Roadmap. All6 topic routes,16 metric contracts and2 shared reference pages remain reachable | No second competing monthly plan. First-revision N/A comparator, clean current-practice recovery, qualification-versus-pilot distinction retained. Contract bodies remain byte-identical;9 prototype calculations and7 unimplemented metrics remain explicitly classified |30-route manifest with original metric hashes;44-doc resolved sidebar/link/anchor checks | +| Presentation integration | Published PR40 merge `432370473d6aaee229b0279551ce7b63da52acb7` merged into isolated branch, including320px toolbar correction |19slides,35-minute content +15-minute Q&A unchanged. Focused source-link and Beyond wording changes only; references now name all five horizons. Homepage and toolbar Strategy still open long-term Target | Generated slide-source map, exact source hashes and presentation browser suite; inspect changed slides16/19 individually | + +No Organization body, runtime vendor or dependency changes are introduced relative to integrated PR40 main. Independent child reviewer owns merge/publication and durable wiki reconciliation. Local candidate evidence is not publication evidence. + +## Verification environment and limits + +Use the prefix-correct static server for full acceptance. Docusaurus `serve` on the installed Node runtime redirects WOFF2 assets to slash-suffixed paths; the regular static server serves the same built font bytes correctly. Chromium executable is selected explicitly from the installed headless build. This is desktop/mobile viewport verification, not Safari/Firefox or physical-device certification. WebM remains unsupported/disabled in this browser; SVG/PNG/JPEG/WebP controls are verified. Existing dependency audit findings are not remediated or accepted by this content change. diff --git a/scripts/browser/roadmap-timeline.cjs b/scripts/browser/roadmap-timeline.cjs index 646abcf..35b904f 100644 --- a/scripts/browser/roadmap-timeline.cjs +++ b/scripts/browser/roadmap-timeline.cjs @@ -63,7 +63,7 @@ const views = { if(await frame.locator('html').getAttribute('data-theme')!==theme) { await frame.locator('#btn-theme').focus(); await page.keyboard.press('Enter'); } - await page.waitForFunction(t=>document.documentElement.dataset.theme===t,theme); + await page.waitForFunction(t=>document.documentElement?.dataset.theme===t,theme); const inline=await inspect(frame,name,width<1100); await frame.locator('#btn-preset').focus();await page.keyboard.press('Enter'); await frame.locator('[data-preset-value="blueprint"]').focus();await page.keyboard.press('Enter'); @@ -93,7 +93,7 @@ const views = { const close=panel.getByRole('button',{name:'Close full-screen diagram',exact:true});await close.waitFor({state:'visible'}); const fullIframe=panel.locator('dialog iframe'); const fullscreen=await (await fullIframe.elementHandle()).contentFrame(); - await fullscreen.waitForFunction(t=>document.documentElement.dataset.theme===t,theme); + await fullscreen.waitForFunction(t=>document.documentElement?.dataset.theme===t,theme); const expanded=await inspect(fullscreen,name,width<1000); await page.screenshot({path:`${output}/${width}-${theme}-${name}-fullscreen.png`}); await close.focus();await page.keyboard.press('Escape'); diff --git a/scripts/browser/roadmap.cjs b/scripts/browser/roadmap.cjs index bcf352b..77c5245 100644 --- a/scripts/browser/roadmap.cjs +++ b/scripts/browser/roadmap.cjs @@ -61,7 +61,7 @@ const fs = require('node:fs'); assert.equal(response.status(), 200); assert.equal(await page.locator('h1').innerText(), 'Roadmap'); const headings = page.locator('.strategy-content > h2'); - assert.deepEqual((await headings.allTextContents()).map(s => s.replace(/\u200b/g, '')), ['Six months, two investment decisions','Delivery first, replication only if earned','Keep one learning loop','Solo capacity and influence']); + assert.deepEqual((await headings.allTextContents()).map(s => s.replace(/\u200b/g, '')), ['Two stages toward the long-term Target','Stage 1: Delivery first','Improve within each phase','Delivery in practice']); const text = await page.locator('.strategy-content').innerText(); for (const marker of ['Humans direct, guide and review throughout', 'Delivery keeps improving', 'system-logic source', 'baseline', 'Target operating model']) assert(text.includes(marker), marker); assert(!text.includes('Supporting gate evidence and hold conditions\n\nThese are')); @@ -125,7 +125,7 @@ const fs = require('node:fs'); const [download] = await Promise.all([page.waitForEvent('download'), frame.locator('[data-format="svg"]').click()]); assert.equal(await download.failure(), null); await download.saveAs(`${output}/${width}.svg`); - assert(fs.readFileSync(`${output}/${width}.svg`, 'utf8').includes('Learn and test')); + assert(fs.readFileSync(`${output}/${width}.svg`, 'utf8').includes('Adopt skills')); assert(fs.readFileSync(`${output}/${width}.svg`, 'utf8').includes('eldorado-roadmap-typography')); for (const id of ['skills','autonomy']) { await frame.locator(`svg[role="img"] [data-node-id="${id}"]`).screenshot({path:`${output}/${width}-${id}-card.png`}); diff --git a/scripts/build-presentations.mjs b/scripts/build-presentations.mjs index bfff6d9..2f0daab 100644 --- a/scripts/build-presentations.mjs +++ b/scripts/build-presentations.mjs @@ -1,4 +1,5 @@ -import {mkdir,copyFile,writeFile} from 'node:fs/promises'; +import {mkdir,copyFile,writeFile,readFile} from 'node:fs/promises'; +import {createHash} from 'node:crypto'; import {slides} from '../presentations/less-prompting-more-shipping/slides.mjs'; const root='presentations/less-prompting-more-shipping'; const out=`static/${root}`; @@ -13,5 +14,9 @@ await writeFile(`${out}/index.html`,`
${slides.map((s,i)=>`

ELDORADO / ${i===17?'DISCUSSION':i===18?'REFERENCE':'AI STRATEGY'}

<${i?'h2':'h1'}>${s.title}${s.body}
`).join('\n')}
`); await copyFile(`${root}/runtime.js`,`${out}/runtime.js`); -await writeFile(`${out}/source-map.json`,JSON.stringify({version:'1.0.0',strategyRevision:'fcaa84f3bf9058f4ede0a097d16d0e3571590a6b',assignment:'AI_Architect_Test_Task.pdf',talkMinutes:slides.slice(0,17).reduce((a,s)=>a+s.minutes,0),discussionMinutes:15,slides:slides.map(({id,title,minutes,sources},i)=>({number:i+1,id,title,minutes,sources}))},null,2)); +const sourceDocuments = await Promise.all([...new Set(slides.flatMap(s=>s.sources).filter(s=>!s.startsWith('PDF:')))].sort().map(async id=>{ + const path=`docs/strategy/${id==='measurement'?'measurement/index':id}.mdx`; + return {id,path,route:`/strategy/${id}/`,sha256:createHash('sha256').update(await readFile(path)).digest('hex')}; +})); +await writeFile(`${out}/source-map.json`,JSON.stringify({version:'1.0.1',strategyRevision:'same-build; exact source hashes below; deployed revision in ../../revision.txt',strategyOrigins:{longTerm:'88a43757762114a506f57ed4b44484306cae1aaa',assignment:'fcaa84f3bf9058f4ede0a097d16d0e3571590a6b',horizonCorrection:'1557813737941901572'},sourceDocuments,assignment:'AI_Architect_Test_Task.pdf',talkMinutes:slides.slice(0,17).reduce((a,s)=>a+s.minutes,0),discussionMinutes:15,slides:slides.map(({id,title,minutes,sources},i)=>({number:i+1,id,title,minutes,sources:[...new Set(sources)]}))},null,2)); console.log(`Built ${slides.length} local Reveal.js slides at ${out}`); diff --git a/scripts/presentation.test.mjs b/scripts/presentation.test.mjs index eaf6fcc..d812947 100644 --- a/scripts/presentation.test.mjs +++ b/scripts/presentation.test.mjs @@ -1,6 +1,7 @@ import test from 'node:test'; import assert from 'node:assert/strict'; import {readFileSync} from 'node:fs'; +import {createHash} from 'node:crypto'; import {execFileSync} from 'node:child_process'; import {slides} from '../presentations/less-prompting-more-shipping/slides.mjs'; const read=p=>readFileSync(p,'utf8'); @@ -24,4 +25,11 @@ test('build emits local pinned Reveal assets, stable IDs and no production CDN', assert.match(read(`${dir}/runtime.js`),/hash:true/); assert.equal(JSON.parse(read('package.json')).dependencies['reveal.js'],'5.2.1'); assert.match(read('src/pages/index.tsx'),/Open presentation/); + const map=JSON.parse(read(`${dir}/source-map.json`)); + assert.equal(map.version,'1.0.1'); + assert.match(map.strategyRevision,/same-build/); + for(const doc of map.sourceDocuments) assert.equal(doc.sha256,createHash('sha256').update(read(doc.path)).digest('hex'),doc.path); + for(const id of ['target-operating-model','roadmap','six-months-target','six-months-roadmap','stage-02-autonomous-agent']) assert(map.sourceDocuments.some(d=>d.id===id),id); + assert(slides.find(s=>s.id==='beyond').notes.includes('long-term destination remains human-directed')); + for(const id of ['months-one-two','months-three-four','months-five-six','capacity','experiment','inconclusive','stop']) assert(slides.find(s=>s.id===id).sources.includes('six-months-roadmap'),id); }); -- 2.54.0 From 36967880825ec288cbbe233093f3a77e8ec32bef Mon Sep 17 00:00:00 2001 From: Jarvis Jr Hermes Date: Thu, 8 Oct 2026 18:23:23 +0000 Subject: [PATCH 3/3] docs: reconcile internal strategy model with restored horizon authority --- research/ai-adoption/assignment-evidence.json | 2 +- research/ai-adoption/strategy-coverage.json | 2 +- research/ai-adoption/strategy-model.json | 48 +++++++++---------- 3 files changed, 26 insertions(+), 26 deletions(-) diff --git a/research/ai-adoption/assignment-evidence.json b/research/ai-adoption/assignment-evidence.json index 6510fa8..0f47ab5 100644 --- a/research/ai-adoption/assignment-evidence.json +++ b/research/ai-adoption/assignment-evidence.json @@ -37,7 +37,7 @@ { "id": "q1", "source_section": "Assignment 1", - "requirement": "Month 1\u20136 concrete priorities and change starting solo, CTO reporting, no formal team authority", + "requirement": "Month 1–6 concrete priorities and change starting solo, CTO reporting, no formal team authority", "pages": [ "six-months-roadmap", "six-months-target" diff --git a/research/ai-adoption/strategy-coverage.json b/research/ai-adoption/strategy-coverage.json index f5bb370..b15faef 100644 --- a/research/ai-adoption/strategy-coverage.json +++ b/research/ai-adoption/strategy-coverage.json @@ -328,7 +328,7 @@ "route": "/strategy/six-months-roadmap/", "question": "What does a solo architect do month by month without team authority?", "inputs": "PDF constraints, current AI practice, willing partners and unknown capacity", - "action_or_decision": "Month 1\u20136 discovery, bounded experiment, compare, selective transfer and CTO investment decision", + "action_or_decision": "Month 1–6 discovery, bounded experiment, compare, selective transfer and CTO investment decision", "output": "Proposed six-month plan with dependencies, evidence, capacity and stop choices", "next_or_feedback": "/strategy/stage-02-autonomous-agent/", "review": "PDF assignment retained independently of long-term destination; EXP-01 lives in six-month action plan" diff --git a/research/ai-adoption/strategy-model.json b/research/ai-adoption/strategy-model.json index 9ea402f..29faa52 100644 --- a/research/ai-adoption/strategy-model.json +++ b/research/ai-adoption/strategy-model.json @@ -1,7 +1,7 @@ { "schema_version": "1.0.0", "status": "proposed-target-not-approved-or-deployed", - "scope": "Six-month assignment-led Strategy with optional legacy governance/target reference; organization model is not PDF evidence. No runtime changes authorized.", + "scope": "Long-term human-controlled autonomous SDLC Target and broad Roadmap, with distinct six-month contribution and action plan plus Beyond bridge. Full30-route reading contract is strategy-coverage.json. Organization model is not PDF evidence; no runtime changes authorized.", "organization": { "Product": [ "Product Management", @@ -31,7 +31,7 @@ { "id": "target-operating-model", "title": "Target", - "purpose": "Solo CTO-sponsored improvement plan; realistic outcomes, assumptions and presentation; conditional target topology." + "purpose": "Long-term human-directed, guided and reviewed autonomous SDLC destination; original topology and supporting controls, not six-month promise or present authority." }, { "id": "skills-governance", @@ -61,7 +61,7 @@ { "id": "roadmap", "title": "Roadmap", - "purpose": "Assess current code quality and delivery processes, close critical gaps, then pilot, expand and sustain AI adoption." + "purpose": "Broad progression from skills/practices adoption to controlled autonomous capabilities: Delivery first, later phase order undecided, evidence and separate human decisions without fixed timing." } ], "diagram": { @@ -282,7 +282,7 @@ "gaming_risk": "Split easy tasks or omit starts; reconcile starts to approved backlog and audit acceptance rubrics.", "missing_data_handling": "Unresolved/missing terminal outcomes remain in denominator with unknown count and known-outcome coverage; do not label them failed. Invalid/missing start excluded from calculation but flagged as orphan evidence.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 6, "denominator": 10, "result": 60.0, @@ -316,7 +316,7 @@ "gaming_risk": "Choose easy labels or hide negative cases; freeze corpus and independently review labels.", "missing_data_handling": "Unknown activation/relevance is unscorable; publish missing count and deny qualification if planned coverage incomplete.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 18, "denominator": 20, "result": 90.0, @@ -350,7 +350,7 @@ "gaming_risk": "Overtrigger to maximize recall; always pair with precision and negative cases.", "missing_data_handling": "Report evaluation coverage; null if no relevant labeled tasks.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 18, "denominator": 24, "result": 75.0, @@ -386,7 +386,7 @@ "gaming_risk": "Remove silent devices or trust declared versions; reconcile managed inventory and separately label attestation trust.", "missing_data_handling": "Unknown/stale versions count outside numerator, inside denominator. Show inventory discovery coverage versus eligible device roster; if roster unknown metric is provisional.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 8, "denominator": 10, "result": 80.0, @@ -421,7 +421,7 @@ "gaming_risk": "Invocation quotas and coercion; no target usage count, split server/client/self-report origins.", "missing_data_handling": "Show observed lower bound and telemetry/response coverage; missing usage unknown rather than non-use.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 7, "denominator": 10, "result": 70.0, @@ -456,7 +456,7 @@ "gaming_risk": "Timestamp rewriting and cherry-picking fast work; lock change mapping and show undeployed backlog age.", "missing_data_handling": "Missing commit mapping or negative/skewed duration excluded from numeric sample, reported explicitly; no zero substitution.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 120, "denominator": 10, "result": 12.0, @@ -490,7 +490,7 @@ "gaming_risk": "Split deployments without value; pair with success, rework and failure measures.", "missing_data_handling": "Missing feed periods not zero; report coverage and no unqualified overall rate when period incomplete.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 14, "denominator": 7, "result": 2.0, @@ -526,7 +526,7 @@ "gaming_risk": "Avoid incident links or relabel intervention planned; reconcile rollbacks/hotfixes independently.", "missing_data_handling": "Known failures / all eligible deployments is a lower bound where incident linkage incomplete; label provisional and report unknown links.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 2, "denominator": 20, "result": 10.0, @@ -561,7 +561,7 @@ "gaming_risk": "Premature recovery declarations or omit hard cases; require operational readback and carry unresolved ages.", "missing_data_handling": "Unresolved failures reported separately and excluded only from recovered-duration distribution; prevent declaring improvement without their visibility.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 9, "denominator": 3, "result": 3.0, @@ -596,7 +596,7 @@ "gaming_risk": "Call hotfixes planned; freeze reason and independently reconcile incident/deployment links.", "missing_data_handling": "Unknown classification stays denominator; observed numerator is lower bound until reconciliation; show classification coverage.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 3, "denominator": 20, "result": 15.0, @@ -631,7 +631,7 @@ "gaming_risk": "Shorten follow-up or downgrade severity; freeze horizon and rubric and independently sample defects.", "missing_data_handling": "Unknown linkage is a coverage warning; no fabricated clean outcome. Show absolute defect and severe incident counts as well.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 2, "denominator": 20, "result": 10.0, @@ -667,7 +667,7 @@ "gaming_risk": "Hide incidents or inflate harmless trials; absolute severity counts and fixed task mix accompany rate.", "missing_data_handling": "Unknown outcomes remain visible; zero detected effects never proves safety. Missing audits make rate provisional.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 1, "denominator": 100, "result": 1.0, @@ -702,7 +702,7 @@ "gaming_risk": "Count tokens only or hide labor/failures; reconcile invoice and allocation totals without double counting.", "missing_data_handling": "Missing cost buckets produce partial estimate plus coverage, not a total. Mixed currency requires dated approved conversion; zero accepted outcomes = null with full cost shown.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 600, "denominator": 6, "result": 100.0, @@ -717,14 +717,14 @@ "id": "human-experience", "name": "Verification confidence and cognitive load", "dimension": "experience", - "definition": "Three separate anonymous 1\u20135 item distributions: confidence in verifying output, manageable workload, usefulness. Primary item: verification confidence mean; report full distributions and response rate.", + "definition": "Three separate anonymous 1–5 item distributions: confidence in verifying output, manageable workload, usefulness. Primary item: verification confidence mean; report full distributions and response rate.", "formula": { - "numerator": "Sum valid 1\u20135 verification-confidence responses, one per participant per survey wave", + "numerator": "Sum valid 1–5 verification-confidence responses, one per participant per survey wave", "denominator": "Count valid responses to that item", "expression": "N / D", "aggregation": "mean" }, - "unit": "points (1\u20135)", + "unit": "points (1–5)", "eligible_population": "Invited eligible cohort at fixed survey wave; voluntary responses.", "exclusions": "Invalid/out-of-range answers and superseded duplicate submission; nonresponders stay in response-rate denominator.", "source_events_tool": [ @@ -736,11 +736,11 @@ "gaming_risk": "Pressure to respond positively; no manager access to individual responses, avoid identifying free text.", "missing_data_handling": "Report valid response count / invited count and item nonresponse; no imputation. Suppress people cohorts below five.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 36, "denominator": 10, "result": 3.6, - "unit": "points (1\u20135)" + "unit": "points (1–5)" } }, { @@ -773,7 +773,7 @@ "gaming_risk": "Rubber-stamp review dates; require linked regression/security/usefulness evidence.", "missing_data_handling": "Missing owner/date/evidence outside numerator; show ownerless, deprecated-in-use and revoked-in-use absolute counts.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 9, "denominator": 12, "result": 75.0, @@ -808,7 +808,7 @@ "gaming_risk": "Weaken rubric or count drafts as customer benefit; lock rubric and independently audit acceptance.", "missing_data_handling": "Unknown follow-up stays denominator with unresolved count; no claim actual business outcome changed without source evidence.", "illustrative_example": { - "label": "SYNTHETIC \u2014 illustrative, not Eldorado observations", + "label": "SYNTHETIC — illustrative, not Eldorado observations", "numerator": 8, "denominator": 10, "result": 80.0, @@ -1157,6 +1157,6 @@ ] } ], - "open_decisions_reference": "strategy-blueprint.md \u2014 Internal evidence mapping and open decisions", + "open_decisions_reference": "strategy-blueprint.md — Internal evidence mapping and open decisions", "publication_boundary": "Evidence mapping, research and open decisions stay outside reader-facing docs/static/search; proposed quality/privacy values must be visibly target settings, never current installation claims." } -- 2.54.0