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); });