Skip to content

Develop SDLC in a self-hosting way wherever possible

Status: open/published

  • sdlc is built using sdlc: its planning artifacts describe its own work; its lifecycle drives that work; its validators check what it produces.
  • Self-hosting is a forcing function that exposes friction in the model before any downstream consumer of sdlc hits it.
  • Applied pragmatically per P0003: some bootstrap steps inevitably aren’t self-hosted yet.

sdlc is built using sdlc. Its planning artifacts (milestones, tasks, ADRs, Standards, Principles) describe the work to build itself; its task lifecycle drives that work; its validators check the artifacts it produces. Self-hosting wherever possible (accepting that bootstrapping requires some non-self-hosted steps) is the forcing function that surfaces friction in the model before any consumer of sdlc hits it.

The core insight: a system that describes itself in its own terms is the toughest test of whether those terms are sufficient. Dogfooding sdlc-on-sdlc exposes gaps in the entity model the moment they would also bite a consumer.

  • The planning artifacts of this project (under docs/planning/) use sdlc’s own entity schemas.
  • New entity types are exercised by being applied to sdlc’s own development before being declared stable.
  • Tooling that operates on entities is itself tracked as a Task or Capability the same way any other work is.
  • This planning effort itself: M0000, M0001, principles, standards, capabilities all captured as sdlc entities (or proto-entities), even before their schemas ship.
  • The Capability tree authored ahead of its schema (proto-ids cap-1..cap-10), then reconciled when the Capability type shipped (2026-06-04): reshaped to C-0001..C-0010 and schema-validated like every other entity.
  • docs/planning/tasks/: sdlc’s own work tracked as Tasks with the same shape consumers will use.

sdlc is built with its own tools: skills, orchestration, task tracking, and entity-management are all done in sdlc itself. New capability tooling lands as a Task or Capability before being declared stable.

Connection to P-0003-pragmatic-architecture: self-hosting is the goal, not an absolute. Some pieces inevitably require bootstrap steps that aren’t self-hosted yet.


← Back to Principles