Documents / Reference / ref-9e4cce368b80
Discovery frame — docir at v0.2.1, run 2026-07-26
The business outcome, scope and coverage the discovery run was framed against.
Frame¶
Run: 2026-07-26 · analyst: Claude (agent) · repo: docir @ main 560aea5 (v0.2.1)
Business outcome¶
- Stated outcome (inferred from README:8-35, docs/doc-index-architecture.md): an AI coding agent working in a repository can (a) find the design knowledge relevant to the task it was given, cheaply, and (b) trust that what it finds is current and internally consistent — instead of re-deriving decisions or contradicting them.
- Unit of value: a retrieval that changes what the agent does. A decision found before the code is written is the whole product.
- Success metric: NONE FOUND. No telemetry, no analytics, no usage counters, no
benchmark harness anywhere in the repo. →
issue-e183d47cdee1. The README's own comparison table (README:39-48) is labelled "Rough orientation, not a benchmark", i.e. the project's central claim (token-cheap, better retrieval) is explicitly unmeasured by its author.
Who pays / uses / suffers¶
| Role | Relationship | Confidence |
|---|---|---|
| Repository maintainer adopting docir | Pays in setup + discipline; gets a durable decision log | inferred |
| AI coding agent (Claude Code et al.) | Primary reader; the token-cost optimisation targets it | observed (README:70-95, modules/agents) |
| Human developer | Secondary reader (Rich tables); primary author of intent | observed (rendering.py) |
| CI job | Runs docir check --strict as a merge gate |
observed (app.py:419-440) |
| docir's own maintainer (Sergei Konovalov) | Sole decision owner for every rule below | observed (LICENSE, git log) |
No revenue model, no tenancy, no accounts. MIT, single-maintainer OSS. adr-90e994d931cc records
the deliberate absence of authorization. Consequence for this run: there is no "business"
with departments — the decision owner for every question is the maintainer. That is
recorded as a frame-level risk, not a per-question owner.
Core vs supporting vs generic¶
- Core domain (the reason the product exists — depth goes here): the document lifecycle + Tier 0 schema enforcement, id allocation, the typed relation graph, staleness-as-data, and the hybrid retrieval ranking.
- Supporting: tag registry; agent-instruction scaffolding (
docir agent); schema profiles;docir initbootstrap. - Generic: persistence/SQLAlchemy, Unix-socket transport, daemon lifecycle, embedding backends, CLI rendering.
Scope¶
In scope — the four bounded contexts and the store-resolution/entry layer:
documents, tags, indexing, agents, plus config (home resolution) and
entry_points (CLI/daemon as the trigger surface).
Out of scope for this run (recorded, not examined for business rules):
- Internal architecture conformance tooling (
tach.toml,scripts/check_contract_sync.py) — engineering hygiene, not business behaviour. - Packaging/release/CI workflow, logo assets,
docs/PUBLISHING.md. - The Alembic machinery itself (its output — the schema — is in scope).
Decision owners¶
| Area | Owner | Notes |
|---|---|---|
| Everything | repo maintainer (Sergei Konovalov) |
Single-maintainer project; no separable SME roles exist |
→ issue-b928ad676595: a single decision owner is also the single point of knowledge. Every
unstated rule in this register lives only in that person's head and in git history.
Budget¶
- Extraction passes: P1–P5, single-agent (repo is 6 919 LOC / 105 files — fits one context with fidelity; the multi-agent cost check in SKILL.md §6 does not justify fan-out, and no delegation was requested).
- Bounded contexts analysed: 4 + config/entry.
- Question cap: ≤7 blocking questions per bounded context per round.
- Depth is not uniform: deepest on
documents(core), shallowest onagentsand transport (generic/supporting).
Definition of done¶
Quality gates in SKILL.md §9, verified in analysis/99-log.md under PHASE 7.
Frame-level unknowns (findings, not blockers)¶
- No success metric exists → cannot rank any gap by measured impact. All
frequencyfields in05-gaps.yamlare thereforeunknownunless a test or doc states otherwise. This is a real limitation on the prioritisation in this run. - No production observation, no support tickets, no user interviews available
(non-interactive session, no telemetry in product). Evidence ranks 1, 5 and 6 from
extraction.md§1 are entirely absent. Everything here rests on ranks 2–4 and 7.
Note on paths (2026-07-30)¶
This document was analysis/00-frame.md until the discovery bundle was folded into docir's own store. The analysis/... paths in the text above describe where the run wrote its output at the time; those files are documents in this store now — see docs/README.md for the map.