AI Engineering Discipline · 02
Published August 9, 2026 · Updated August 17, 2026
From Pasted Prompts to Enforced Pipelines: How AI Engineering Discipline Evolved
From repeatedly pasted prompts to repository rules and enforceable skill pipelines, the form of engineering discipline keeps changing. What interests me is what stays the same — and what happens to the engineer when more of that discipline becomes executable.
From repeatedly pasted prompts to repository rules and enforceable skill pipelines, the form of engineering discipline keeps changing. What interests me is what stays the same — and what happens to the engineer when more of that discipline becomes executable.
In 2024, I used ChatGPT to help build an open-source project.
Every time I opened a new conversation, I pasted roughly the same instructions:
You are the Lead Architect. Follow the Review → Implement → Verify process. Prefer repository documentation over conversation context…
I pasted that prompt dozens of times.
It worked.
It was also clearly the wrong long-term solution.
Two years later, tooling paradigms have shifted toward frameworks that package engineering workflows into executable skills, enforcing strict operational sequences: clarify → design → plan → implement → verify.
The form of discipline evolved.
The underlying purpose did not.
That distinction is worth unpacking.
Three Forms, One Function
Looking back at my workflow, I see three distinct iterations of the same underlying principle.
2024 — The Prompt
My 2024 startup prompt functioned as a mini engineering handbook.
It contained rules like:
- Act as Lead Architect.
- Follow Documentation First and Component First principles.
- Keep one Sprint per conversation context.
- Deliver one Package as a single complete increment.
- Review diffs only.
- Avoid leaving pseudocode or TODO stubs.
- Verify changes before marking tasks complete.
Every new chat session started with that text block.
It was useful, but fragile.
If I omitted part of the prompt, the agent lacked that context entirely. The discipline existed, but it relied on my memory and willingness to repeat myself.
That raised an obvious question:
Why keep pasting project rules into the prompt when the project already lives in a repository?
2025 — The Repository Rule
The next phase moved those instructions directly into the codebase.
My prompt instructions shifted into CLAUDE.md, and later into AGENTS.md.
That change eliminated an important point of failure:
New sessions no longer depended on my manual setup. The repository became the source of truth for workflow constraints.
Renaming CLAUDE.md to AGENTS.md was a deliberate choice:
Tools change over time, but core project conventions should remain stable.
It reflected a principle I rely on often:
Preserve the function of a rule, not the tool-specific format used to ingest it.
The repository structure eventually revealed another issue: documentation drift.
At one point, Clover had three overlapping onboarding files: AGENTS, context, and quick-start. Their boundaries were vague, making document precedence unclear.
The fix wasn’t adding another specification.
It was removing one.
I deleted context.md, defined a single entry point, and established explicit file precedence rules.
The discipline moved into the repository, but it still required clear architectural boundaries.
2026 — Executable Workflows
The third phase relies on programmatic workflow enforcement.
Frameworks like Superpowers demonstrate a tighter pattern: converting development discipline into executable skills and pipeline checks.
Instead of prompting an agent to:
Remember to clarify, design, plan, implement, and verify,
the workflow structures those phases programmatically, making skipped steps explicit build failures.
This shifts discipline from something an agent reads into something a pipeline enforces.
I treat my own project rules with the same mindset:
- A Package must represent a complete, functional increment.
- Code reviews must focus on active diffs.
- Documentation updates must land alongside feature changes.
These checks can be encoded into executable pipelines.
However, it is easy to over-engineer this layer.
Being able to encode a rule doesn’t mean it should be automated unconditionally.
Some rules belong in automated scripts.
Others require developer judgment.
Deciding where to draw that line is an architectural choice.
Clover contains a small example of this evolution.
I initially updated documentation at the end of each Sprint. Later, I adjusted the rule to require documentation updates alongside every Package commit.
The underlying purpose remained the same:
Keep documentation and code changes in sync.
Only the execution trigger changed:
When synchronization happens.
Discipline evolves across different operational scales.
The format changes.
The function remains.
2024 → 2025 → 2026
The progression moves engineering discipline into increasingly durable execution environments.
This diagram could not be rendered. Showing the Mermaid source instead:
flowchart LR
A["2024<br/>The Prompt<br/><br/>Human repeats rules"] -->
B["2025<br/>Repository Rule<br/><br/>Project stores rules"] -->
C["2026<br/>Executable Workflow<br/><br/>Workflow enforces stages"]
A -. "same function" .-> F["Engineering discipline"]
B -. "same function" .-> F
C -. "same function" .-> FThe key change isn’t that new tools are inherently better, but where discipline lives and how much of it runs without manual oversight.
Tell → Store → Execute
The evolution breaks down into a three-stage progression:
This diagram could not be rendered. Showing the Mermaid source instead:
flowchart TB
T["Tell<br/><br/>Prompt"] --> S["Store<br/><br/>Repository rule"] --> E["Execute<br/><br/>Workflow"]
T --> M["Depends on human repetition"]
S --> P["Project-owned context"]
E --> W["Machine-enforced sequence"]This reflects how workflow mechanisms shift across operational layers.
What Has Not Changed
Side by side, all three formats serve the same function.
The 2024 system prompt, the 2025 repo-level instructions, and 2026 executable pipelines all address the same four structural limitations:
- Cross-session consistency
- Task boundaries
- Architectural coherence
- Definition of done
The execution format changed across three iterations.
The underlying problems stayed constant.
Prompts, repository rules, and automated pipelines are simply different delivery mechanisms.
Tools reflect their contemporary ecosystems, but system discipline compensates for a persistent reality: AI agents do not own system state.
The Engineer’s Evolving Role
Automated pipelines often lead to a common assumption:
If tools enforce workflow discipline automatically, the software engineer’s role becomes secondary.
I disagree.
The engineer’s focus shifts to a higher abstraction layer.
The Engineer’s Abstraction Layer Shifts Up
This diagram could not be rendered. Showing the Mermaid source instead:
flowchart TB
B["Before<br/><br/>Engineer executes discipline"] --> A["Automation<br/><br/>Rules become repeatable"]
A --> N["After<br/><br/>Engineer designs and judges discipline"]
N --> N1["Define project guardrails"]
N --> N2["Judge exceptions"]
N --> N3["Decide what should become code"]Generic pipelines cannot replace three core engineering responsibilities:
1. Define Project Guardrails
A generic agent framework understands general software patterns like TDD.
It does not know Clover’s design tokens, ADR numbering conventions, architectural boundaries, or acceptance criteria.
Those parameters originate from the project context.
An engineer must define them.
2. Evaluate Rule Exceptions
An automated pipeline can block a build if tests are missing.
It cannot determine whether a specific edge case requires a full test suite, whether the test provides meaningful coverage, or whether a constraint is being applied incorrectly.
Pipelines enforce baseline defaults.
Engineers evaluate exceptions.
3. Determine What Should Be Encoded
Automating a workflow rule doesn’t mean it should always be hardcoded.
Turning every guideline into a strict pipeline check makes a codebase brittle.
Leaving everything unconstrained leads back to repeating setup instructions in every prompt session.
Balancing strict rules against flexible guidelines is a core engineering decision.
The engineer’s role shifts from manually executing repetitive steps to designing and managing system discipline.
Practical Guidelines for AI-Assisted Development
For long-term projects built with AI agents, three practical principles stand out:
Don’t wait for tooling to define your discipline. Project rules belong to your application architecture. Generic agent frameworks won’t establish them for you.
Keep workflow rules tool-agnostic. File formats like CLAUDE.md or AGENTS.md are delivery channels. The underlying rules matter far more than the specific file name.
Identify where your codebase consistently drifts. Address recurring mistakes by converting them into explicit project rules, documentation boundaries, automated tests, or pipeline checks.
Evaluating codebase drift is far more practical than comparing model benchmarks.
Closing
Tools and workflow formats will continue to evolve.
Prompts gave way to repository rules, which are now becoming executable pipelines. Over time, many of these workflows will become standard build primitives.
Yet the core challenge remains unchanged.
Because AI agents do not inherently manage system memory, boundaries, architecture, or completion criteria, those constraints must be explicitly defined elsewhere.
The central engineering question isn’t whether AI can follow instructions.
It is:
Which rules should be explicit, which should be automated, and which require human judgment?
That balance lies at the heart of effective AI-assisted engineering.
To see these principles applied in practice, inspect Clover’s public repository — where all ADRs, Sprint records, Design System rules, and workflow specs are maintained directly alongside the code.
@ 2026 Victor Lee