Skip to main content

Definitions

TermMeaning in ADD
Artifact-Driven Development (ADD)An artifact-centered approach to software engineering where explicit knowledge, dependencies, and validation govern implementation and coordination.
ArtifactA structured, versioned unit of knowledge managed through explicit changes. It represents a cohesive unit of knowledge, responsibility, and change.
Working knowledgeThe requirements, specifications, and decisions directly under an artifact directory. On main or master it is established knowledge; on a change branch it contains the proposal.
Identity recordThe YAML front matter of an artifact root README: current_version, depends_on, and optional publication_reviews.
ActorA human developer or AI agent that investigates, defines, implements, or validates work.
Established versionThe complete knowledge state after a change satisfies its DoD and all required knowledge and implementation changes land on main or master. Git holds its snapshot. Dependencies use the current established version.
ChangeAn artifact-local revision of knowledge on a dedicated branch. It edits working knowledge in place, copies nothing, and creates its own delivery plan. Its change record states the reason and scope; its tasks hold the plan and evidence. An artifact has at most one active change.
Version recordversions/<version>/README.md. It names its originating change in source_change and contains no knowledge or tasks.
Unit of workA documented deliverable outcome that groups changes to one or more artifacts. Each participating change belongs to exactly one unit of work; membership creates no dependency.
ElementAn addressable piece of artifact knowledge, such as a requirement, specification, ADR, or task document. Its logical identity is <artifact>:<path>, relative to the artifact directory.
System flowA named behavior journey owned by one artifact and defined as a specification element. It is separate from a unit of work or delivery schedule.
Flow stepAn identified part of a system flow, connected to other steps through behavior transitions.
Flow supportA relationship from a step to a knowledge element, named subjourney, implementation, or test, with its evidence basis.
Flow graphA derived view of flows, steps, supporting sources, and typed relationships. It permits branches, joins, and loops; it is not an execution DAG.
Version provenanceThe originating artifact-local change named by source_change in a version record. Its retained delivery record is changes/<source_change>/tasks/.
RequirementA business or technical need, rule, or constraint that motivates and governs the work.
SpecificationDetailed behavior, domain knowledge, and technical contracts that define how requirements will be satisfied.
Architectural Decision Record (ADR)A record of a necessary architectural decision that required evaluation of multiple options. ADRs belong to Specification.
Implementation planChange-owned tasks that describe implementation work and the checks needed to establish its completion. The delivered plan remains with that change.
Definition of Done (DoD)A checklist inside each implementation task. All applicable criteria must be satisfied before the change becomes an established version.
Validation evidenceResults recorded with implementation tasks that show how their DoD criteria were checked.
ClaimAn optional front-matter record of one consequential assertion, such as a decision, assumption, hypothesis or root cause, with its status, evidence basis and the cheapest check. Its status describes evidence, never approval. See claims.
Domain languageThe defined business terms used consistently within a domain context.
Domain modelThe concepts, relationships, and rules used to describe a domain. Requirements, specifications, and decisions record the model; implementation expresses it in software.
Bounded contextA boundary within which a domain model and its language have consistent meanings. Strategic Domain-Driven Design helps identify these boundaries.
ContractAn explicit specification of an interface, including the behavior and constraints that its participants must satisfy.
Artifact dependencyA relationship in which an artifact requires an upstream artifact's established knowledge or completed change to proceed. Detailed contracts belong in specifications.
Dependency DAGThe artifact-level directed acyclic graph, derived from depends_on in identity records. Its nodes are artifacts and its edges identify dependencies and execution order. Changes, versions, and tasks are not nodes in this graph.
Implementation task DAGA directed acyclic graph within one change. The plan lists current tasks; each task declares its ID and prerequisite task IDs. Edges point from prerequisite to dependent task.
Impact analysisAssessment of which knowledge, artifacts, contracts, and tasks a proposed change affects. It occurs throughout Requirement and Specification, including applicable ADRs. A reader reports each affected entity in one tier (changed, direct, transitive, potential or unresolved) with the relationship path, its evidence and the coverage of the analysis.

Artifacts can represent business capabilities, such as tenant management, or technical capabilities, such as deployment infrastructure, observability, and CI/CD. Both follow the same workflow.