This commit is contained in:
@@ -5,21 +5,58 @@ workspace descriptor. Evidence is optional: a valid v3 descriptor without it rem
|
||||
When present, `evidence` is strict: it contains `source` and a defaulted strict `policy`; every
|
||||
source variant and the policy reject unknown keys.
|
||||
|
||||
```mermaid
|
||||
flowchart LR
|
||||
REGISTRY["Workspace registry"] --> DESCRIPTOR["Evidence descriptor"]
|
||||
DESCRIPTOR --> FILESYSTEM["Filesystem adapter"]
|
||||
DESCRIPTOR --> HTTP["HTTP adapter"]
|
||||
DESCRIPTOR --> S3["S3 adapter"]
|
||||
FILESYSTEM --> CURATED["Curated markdown"]
|
||||
HTTP --> CURATED
|
||||
S3 --> CURATED
|
||||
CURATED --> VALIDATE["Validate schema\nand provenance"]
|
||||
VALIDATE --> PREPROCESS["Preprocess pinned\nrevision"]
|
||||
PREPROCESS --> GENERATION["Versioned generation"]
|
||||
GENERATION --> ACTIVE["Active corpus"]
|
||||
```
|
||||
|
||||
## Filesystem source
|
||||
|
||||
A filesystem source uses the exact URI `<workspace.id>/evidence`. `patterns` is a nonempty list of
|
||||
unique, normalized relative POSIX globs. Its defaults are `patterns: ["**/*.md"]` and
|
||||
unique, normalized relative POSIX globs. The Evidence-local `schema_version` defaults to `1` for
|
||||
compatibility, where an omitted filesystem pattern defaults to `patterns: ["**/*.md"]` and
|
||||
`max_bytes: 10485760`.
|
||||
|
||||
`evidence.schema_version: 2` declares the source/curated authoring layout. Its omitted filesystem
|
||||
pattern defaults to `patterns: ["curated/**/*.md"]`; if declared, the only accepted v2 filesystem
|
||||
pattern list is exactly `patterns: ["curated/**/*.md"]`. A v2 descriptor that selects `source/`,
|
||||
spans both `source/` and `curated/`, uses a broader curated glob, or selects a non-Markdown file is
|
||||
rejected. Explicit safe legacy filesystem patterns remain supported under Evidence version 1. HTTP
|
||||
and S3 sources do not use filesystem layout patterns and retain their existing contracts.
|
||||
|
||||
The v2 authoring tree is:
|
||||
|
||||
```text
|
||||
evidence/
|
||||
├── source/ # preserved original material
|
||||
├── curated/ # reviewed Evidence Units indexed at runtime
|
||||
├── manifest.yaml
|
||||
└── evaluation.yaml
|
||||
```
|
||||
|
||||
`source/`, the manifest, the evaluation set, and other support files are materialized for
|
||||
traceability but never acquired by v2 runtime preprocessing.
|
||||
|
||||
### Example: filesystem
|
||||
|
||||
```yaml
|
||||
evidence:
|
||||
schema_version: 2
|
||||
source:
|
||||
type: filesystem
|
||||
uri: example/evidence
|
||||
patterns:
|
||||
- "**/*.md"
|
||||
- "curated/**/*.md"
|
||||
max_bytes: 10485760
|
||||
policy:
|
||||
max_chunk_chars: 4000
|
||||
@@ -152,8 +189,10 @@ catalog metadata exactly. Every catalog entry must have its descriptor at that s
|
||||
catalog-only entries are invalid and reject the complete candidate revision.
|
||||
|
||||
Workspace source changes only through curator Git commit/push in a separate authoring clone,
|
||||
followed by an installation pull. The API never writes `thoth-workspaces.yaml`,
|
||||
`<id>/workspace.yaml`, `<id>/schema/**`, or `<id>/evidence/**`.
|
||||
followed by an installation pull. Curator validation occurs before merge; activation and
|
||||
preprocessing consume only the merged, pinned commit. The API and runtime never write
|
||||
`thoth-workspaces.yaml`, `<id>/workspace.yaml`, `<id>/schema/**`, or `<id>/evidence/**` in the
|
||||
authoring repository.
|
||||
|
||||
## Registry revision and phase ownership
|
||||
|
||||
@@ -164,7 +203,7 @@ followed by an installation pull. The API never writes `thoth-workspaces.yaml`,
|
||||
| Repository consumer | ThothII fetches and validates a complete candidate, atomically activates it only on success, and never edits, commits, or pushes repository content. |
|
||||
| Runtime secrets | Workspace management returns configured/missing status only; decrypted values exist only for the lifetime of a diagnostic or runtime lease. |
|
||||
| P1.1 | Validates the lexical URI `<id>/evidence` and proves the declared filesystem root object is a Git tree at that same commit; it does not recursively inspect nested symlinks. Evidence materialization stays out of scope for P1.1. |
|
||||
| P6 | Owns commit-addressed materialization, realpath and recursive containment, nested-symlink checks, and race checks. |
|
||||
| P6 | Owns commit-addressed materialization of the complete Evidence tree, realpath and recursive containment, nested-symlink checks, and race checks. |
|
||||
|
||||
P1.1 performs no acquisition, extraction, preprocessing/indexing, embeddings, Qdrant writes,
|
||||
active-snapshot retention, or GC.
|
||||
@@ -179,10 +218,3 @@ tht config check -c <path>
|
||||
```
|
||||
|
||||
Stop after validation. P2/P6 later owns preprocessing and materialization.
|
||||
|
||||
## Acceptance states
|
||||
|
||||
These gates are independent and are not implied by this documentation contract.
|
||||
|
||||
automated integration: PENDING
|
||||
manual acceptance: PENDING
|
||||
|
||||
Reference in New Issue
Block a user