Skip to content

Specification — wf-01-01

US-01-01-01 — Initialise Standardised Doc Package

As a maintainer, I want to initialise a new doc package with a standardised directory structure, so that I can build documentation consistently and reproducibly.

REQ-00-00-00-04 — Deterministic IDs and Slugs

The arqix CLI SHALL derive document IDs and slugs deterministically from the configured policy.

Coverage: verified.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-01-01 — Create Standard Doc-Package Scaffold

When arqix doc init <path> is invoked, arqix SHALL create the standard doc-package scaffold with index.md, units/, pages/, artefacts/, logs/, and .arqix/.

Coverage: verified.

REQ-01-01-01-02 — Write Doc-Index Frontmatter on Init

When a doc package is initialised, arqix SHALL write index.md frontmatter containing id, kind=doc_index, and title.

Coverage: verified.

REQ-01-01-01-03 — Provide a Top-Level Init Alias

The arqix CLI SHOULD provide a top-level init alias that behaves exactly like doc init.

Coverage: verified.

US-01-01-02 — Create Governed Units

As a maintainer, I want to create units with governed metadata and uniqueness rules, so that I can keep modular documentation consistent and lintable across the repository.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-02-01 — Create Unit Files in Configured Location

When arqix unit new is invoked, arqix SHALL create a unit file in the configured unit location.

Coverage: uncovered.

REQ-01-01-02-02 — Support Global Unit IDs

The arqix CLI SHALL support unit files that declare a global ID in frontmatter or via a supported directive.

Coverage: uncovered.

REQ-01-01-02-03 — Explain Unit Creation in Command Help

The unit new command help SHOULD explain where units are created, which metadata is optional, and how IDs are supplied.

Coverage: verified.

US-01-01-03 — Format Documents Canonically

As a maintainer, I want to format documents canonically, so that diffs stay small and conventions are applied automatically.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-03-01 — Sort Frontmatter Keys Canonically

When arqix fmt runs, arqix SHALL sort frontmatter keys according to the configured key_order.

Coverage: verified.

REQ-01-01-03-02 — Normalise Directives without Semantic Changes

When arqix fmt runs, arqix SHALL normalise directives, including attribute order and whitespace, without semantic changes.

Coverage: verified.

US-01-01-04 — Lint Documents Deterministically

As a maintainer, I want to lint documents, so that errors in includes, metadata, and IDs are found early and deterministically.

REQ-00-00-00-04 — Deterministic IDs and Slugs

The arqix CLI SHALL derive document IDs and slugs deterministically from the configured policy.

Coverage: verified.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-04-01 — Check Include Targets Exist

When arqix lint run executes, arqix SHALL verify that include targets exist.

Coverage: verified.

REQ-01-01-04-02 — Report Forbidden Frontmatter Keys in Units

When arqix lint run executes, arqix SHALL report forbidden frontmatter keys in units according to the configured allowlist.

Coverage: uncovered.

REQ-01-01-04-03 — Report Duplicate IDs Globally

When arqix lint run executes, arqix SHALL report duplicate IDs globally across units, requirements, user stories, ADRs, and glossary entries.

Coverage: verified.

REQ-01-01-04-04 — Report Lint Findings with File and Line Context

When a lint check reports a finding, the diagnostic SHALL include precise file and line context.

Coverage: verified.

REQ-01-01-04-05 — Fail on Invalid Lint Input

If lint input is invalid, then arqix SHALL return a failing status.

Coverage: uncovered.

US-01-01-05 — Create Documents from Configured Templates

As a maintainer, I want to create documents from templates, so that new artefacts such as requirements, user stories, and ADRs are compliant from the start.

REQ-00-00-00-04 — Deterministic IDs and Slugs

The arqix CLI SHALL derive document IDs and slugs deterministically from the configured policy.

Coverage: verified.

REQ-00-00-00-05 — Template-Governed Document Creation

When a document is created, arqix SHALL instantiate the configured template for the requested kind.

Coverage: verified.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-05-01 — Accept Only Configured Document Kinds

The arqix CLI SHALL accept only <kind> values that are defined in configuration.

Coverage: uncovered.

REQ-01-01-05-02 — Provide Creation Aliases for Common Kinds

The arqix CLI SHOULD provide the aliases req new, us new, and adr new for template-based creation.

Coverage: verified.

REQ-01-01-05-03 — Substitute Template Placeholders

When a document is created from a template, arqix SHALL substitute the placeholders {title}, {slug}, and {id}.

Coverage: uncovered.

US-01-01-06 — Finalise Document Metadata Mechanically

As a maintainer, I want to mechanically finalise metadata, so that updated is set consistently without rewriting content.

REQ-01-01-06-01 — Set Updated as ISO Date on Finalise

When arqix finalise runs, arqix SHALL set updated to an ISO-8601 date in YYYY-MM-DD format.

Coverage: verified.

REQ-01-01-06-02 — Avoid Rewriting Current Metadata

If a metadata value is already current, then arqix finalise SHALL NOT rewrite it.

Coverage: verified.

REQ-01-01-06-03 — Fail Clearly on Unsupported Frontmatter

If a file has no supported frontmatter, then arqix finalise SHALL fail with a clear diagnostic.

Coverage: verified.

US-01-01-07 — Enforce Scope Guardrails for Automation Agents

As a maintainer, I want enforceable guardrails for automation agents that limit modifications to a declared scope such as files, directories, and story boundaries, so that agent contributions remain reviewable and do not cause opportunistic repository-wide churn.

REQ-00-00-00-03 — Machine-Readable Diagnostics

When arqix emits a diagnostic, arqix SHALL provide it in a documented machine-readable format.

Coverage: verified.

REQ-01-01-07-01 — Declare Change Scope in Policy Files

The arqix CLI SHALL support a policy file in minimal YAML or TOML that declares the allowed change scope.

Coverage: verified.

REQ-01-01-07-02 — Evaluate Changed Files against Policy

When arqix policy check is invoked with a list of changed files, arqix SHALL evaluate them against the declared policy.

Coverage: verified.

REQ-01-01-07-03 — Support Warn-Only Policy Mode

Where warn-only mode is configured, arqix policy check SHALL report violations without failing.

Coverage: verified.

US-01-01-08 — Generate Governed Coverage Reports

As a maintainer, I want to generate coverage reports, so that missing links are surfaced early and documentation quality stays enforceable over time.

REQ-00-00-00-03 — Machine-Readable Diagnostics

When arqix emits a diagnostic, arqix SHALL provide it in a documented machine-readable format.

Coverage: verified.

REQ-01-01-08-01 — Identify Requirements without Verifying Tests

When arqix trace coverage runs, arqix SHALL identify requirements without verifies tests.

Coverage: verified.

REQ-01-01-08-02 — Identify Requirements without Implementing Code

When arqix trace coverage runs, arqix SHALL identify requirements without implements code.

Coverage: uncovered.

REQ-01-01-08-03 — Support Markdown and JSON Coverage Output

The coverage report SHALL support at least Markdown and JSON output formats.

Coverage: verified.

US-01-01-09 — Govern Agent Workflow Document Standards

As a maintainer, I want the agent instruction and plan documents to follow a standardized structure and editing policy, so that automation workflows remain predictable, reviewable, and aligned with repository standards regardless of which coding agent executes them.

REQ-01-01-09-04 — Keep Workflow Documents Unambiguous

The agent instruction and plan document structures SHOULD be explicit enough that an agent can follow them without guessing process constraints.

Coverage: uncovered.

REQ-01-01-09-05 — Document Agent-Specific Extension Points

When a coding agent is supported, its agent-specific extension points SHALL be documented.

Coverage: uncovered.

US-01-01-10 — Define Schema-Backed Metadata Contracts

As a maintainer, I want schema-backed metadata contracts for each document kind, so that frontmatter drift is caught early and templates remain enforceable over time.

REQ-00-00-00-05 — Template-Governed Document Creation

When a document is created, arqix SHALL instantiate the configured template for the requested kind.

Coverage: verified.

REQ-01-01-10-01 — Declare Metadata Contracts per Document Kind

The arqix CLI SHALL support schema contracts that declare required and optional metadata fields per document kind.

Coverage: uncovered.

REQ-01-01-10-02 — Report Metadata Contract Violations

When lint validates metadata against a contract, arqix SHALL report missing, extra, and type-invalid fields.

Coverage: uncovered.

US-01-01-11 — Govern Architecture Documentation Standards

As a maintainer, I want architecture and governance documentation to follow the same standards and assembly rules as product documentation, so that documentation governance remains consistent across the repository.

REQ-01-01-11-04 — C4-Oriented Architecture Views

Architecture views SHOULD present the C4 model in a C4-oriented modelling style.

Coverage: verified.

REQ-01-01-11-05 — Document Consistency-Check Extension Path

The architecture documentation SHOULD record a future documentation consistency check as an extension path.

Coverage: verified.

REQ-01-01-11-06 — Validate Requirement Authoring Rules

When arqix lint requirements runs, arqix SHALL report every requirement document whose identity, kind, required metadata, or derivation links violate the corpus scheme and every normative sentence that departs from the RFC 2119 subset and EARS patterns of the requirements style guide.

Coverage: verified.

REQ-01-01-11-07 — Validate Frontmatter and Ontology Contracts

When arqix lint frontmatter runs, arqix SHALL report every architecture and ontology document whose frontmatter, canonical formatting, or ontology-vocabulary use violates the declared corpus contract.

Coverage: verified.

REQ-01-01-11-08 — Validate Story Workflow Membership

When arqix lint requirements runs, arqix SHALL report every user story whose id does not encode the workflow named by its is-part-of-workflow triple.

Coverage: verified.

REQ-01-01-11-09 — Validate Story Persona Workflow Coupling

When arqix lint requirements runs, arqix SHALL report every user story that names a persona which is neither declared on the story's workflow nor marked as a consolidation persona.

Coverage: verified.

US-01-01-12 — Govern Glossary Term Metadata and IDs

As a maintainer, I want glossary terms to be scaffolded with stable IDs and linted metadata, so that terminology artefacts remain compliant and traceable across the repository.

REQ-00-00-00-04 — Deterministic IDs and Slugs

The arqix CLI SHALL derive document IDs and slugs deterministically from the configured policy.

Coverage: verified.

REQ-01-01-12-01 — Scaffold Glossary Terms with Required Metadata

When arqix doc new glossary is invoked, arqix SHALL create a glossary term with the required metadata and route it to the configured location.

Coverage: uncovered.

REQ-01-01-12-02 — Reference Glossary Terms by Stable ID

The arqix CLI SHALL support referencing glossary terms by stable ID from ADRs and other documents.

Coverage: uncovered.

REQ-01-01-12-03 — Detect Duplicate or Malformed Glossary IDs

When arqix lint run executes, arqix SHALL detect duplicate or malformed glossary IDs.

Coverage: uncovered.

US-01-01-13 — Govern Deterministic Document Creation via Templates

As a maintainer, I want document creation to use deterministic template, ID, and routing rules, so that new artefacts remain compliant from the moment they are created.

REQ-00-00-00-05 — Template-Governed Document Creation

When a document is created, arqix SHALL instantiate the configured template for the requested kind.

Coverage: verified.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-00-00-00-09 — Dry-Run Support

Where a command creates or modifies files, the command SHALL support a dry-run mode that reports planned changes without writing.

Coverage: verified.

REQ-01-01-13-01 — Generate Unique IDs from Configured Policy

When a document is created without an explicit ID, arqix SHALL generate an ID from the configured policy and verify its uniqueness.

Coverage: verified.

REQ-01-01-13-02 — Create Documents in Configured Kind Location

When arqix doc new <kind> is invoked, arqix SHALL create the document in the configured location for that kind.

Coverage: verified.

US-01-01-14 — Lint Translation Metadata and Drift

As a maintainer, I want an i18n lint profile that detects missing translations, outdated translations, and translation metadata mismatches, so that bilingual documentation quality can be enforced consistently.

REQ-00-00-00-02 — Stable Exit Codes

The arqix CLI SHALL signal command outcomes through documented, stable exit codes.

Coverage: verified.

REQ-00-00-00-03 — Machine-Readable Diagnostics

When arqix emits a diagnostic, arqix SHALL provide it in a documented machine-readable format.

Coverage: verified.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-00-00-00-10 — Translation Drift Detection

When translations exist for a document, arqix SHALL detect missing and outdated translations deterministically.

Coverage: verified.

REQ-01-01-14-01 — Configure Translation-Required Kinds

The set of translation-required kinds or domains SHALL be configurable in arqix.toml.

Coverage: uncovered.

US-01-01-15 — Operationalise the Release Process with SemVer

As a maintainer, I want a documented, coding-agent-friendly release process using SemVer, so that releases can be prepared traceably and executed safely.

US-01-01-16 — Validate Repository Configuration and Inspect Effective Config

As a maintainer, I want to validate repository configuration and inspect the effective config, so that documentation rules stay consistent and automation has a deterministic baseline.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-16-01 — Validate Configuration against Schema

When arqix config validate runs, arqix SHALL report schema and contract violations.

Coverage: verified.

REQ-01-01-16-02 — Render Effective Configuration

When arqix config show runs, arqix SHALL render the effective configuration after defaults and overrides are applied.

Coverage: verified.

REQ-01-01-16-03 — Identify Failing Key in Config Diagnostics

Configuration diagnostics SHOULD identify the failing key and source file.

Coverage: verified.

US-01-01-17 — Configure Discovery Scope

As a maintainer, I want to configure which directories document discovery skips, so that repository layouts with vendored or generated directories under the roots stay clean without code changes.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-17-01 — Exclude Configured Skip-Dirs from Discovery

Where skip-dirs is configured, arqix SHALL exclude the named directories from document discovery.

Coverage: verified.

REQ-01-01-17-02 — Exclude Default Skip-Dirs from Discovery

While no skip-dirs override is configured, arqix SHALL exclude .git, target, node_modules, __pycache__, and fixtures from document discovery.

Coverage: verified.

US-01-01-18 — Configure the ID Policy

As a maintainer, I want the document ID shapes declared in configuration and all relations resolved from the declared triples, so that a repository adopting arqix can bring its own numbering without forking the tool.

REQ-00-00-00-04 — Deterministic IDs and Slugs

The arqix CLI SHALL derive document IDs and slugs deterministically from the configured policy.

Coverage: verified.

REQ-01-01-18-01 — Apply Configured ID Patterns

When a document ID is generated or validated, arqix SHALL apply the ID pattern configured for the document's family.

Coverage: verified.

REQ-01-01-18-02 — Resolve Ownership from Declared Triples

When the trace graph resolves the owning story of a requirement, arqix SHALL read it from the requirement's first derived-from triple.

Coverage: verified.

REQ-01-01-18-03 — Preserve Current ID Shapes by Default

Where no ID policy is configured, arqix SHALL apply default patterns that reproduce the built-in ID shapes.

Coverage: verified.

REQ-01-01-18-04 — Check ID Consistency Where Groups Exist

Where the configured ID pattern declares semantic groups, arqix SHALL report inconsistencies between the values encoded in an ID and the document's declared triples.

Coverage: verified.

US-01-01-19 — Configure Frontmatter Contracts

As a maintainer, I want the per-family frontmatter contract — canonical key order and required meta keys — declared once in configuration, so that the formatter and the validators can never disagree about what a conforming document looks like.

REQ-00-00-00-06 — Effective Configuration as Baseline

The arqix CLI SHALL resolve every command against the effective configuration.

Coverage: verified.

REQ-01-01-19-01 — Order Frontmatter Keys from Configuration

When arqix fmt canonicalises frontmatter, arqix SHALL order keys by the per-family key order in the effective configuration.

Coverage: verified.

REQ-01-01-19-02 — Share One Frontmatter Contract Source

arqix SHALL validate frontmatter contracts against the same configured source the formatter reads.

Coverage: verified.

REQ-01-01-19-03 — Configure Required Meta Keys

When a document's meta block is validated, arqix SHALL require exactly the meta keys declared in the effective configuration.

Coverage: verified.

US-01-01-20 — Create Documents from Template Files

As a maintainer, I want doc new and doc init to instantiate template files from a configured directory, so that I can shape what a new document looks like by editing a file instead of forking string literals in the engine.

REQ-00-00-00-05 — Template-Governed Document Creation

When a document is created, arqix SHALL instantiate the configured template for the requested kind.

Coverage: verified.

REQ-01-01-20-01 — Instantiate Configured Template Files

When a document is created, arqix SHALL instantiate the template file configured for the document's kind.

Coverage: verified.

REQ-01-01-20-02 — Scaffold Default Templates on Init

When arqix doc init scaffolds a package, arqix SHALL write the default template files into the configured template directory.

Coverage: verified.

REQ-01-01-20-03 — Fail Clearly on Missing Template Files

If a configured template file is missing, then arqix SHALL fail with a diagnostic naming the expected path.

Coverage: verified.