Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 65 additions & 0 deletions artifacts/decisions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -301,3 +301,68 @@ artifacts:
No exemption mechanism (all commits must reference artifacts).
Rejected because it creates excessive friction for routine
maintenance commits that have no traceability value.

- id: DD-014
type: design-decision
title: Prefixed IDs over URI-style references
status: accepted
description: >
Cross-repo links use prefix:ID syntax (e.g., rivet:REQ-001) rather than
full URIs. Simpler to type, more readable in YAML.
links:
- type: satisfies
target: REQ-020
tags: [cross-repo]
fields:
decision: Use prefix:ID syntax with prefix declared in rivet.yaml
rationale: >
Simpler and more readable than URIs. Prefix is a local alias
configured per project, matching sphinx-needs id_prefix pattern.

- id: DD-015
type: design-decision
title: Mesh topology over hub-and-spoke
status: accepted
description: >
Any repo can link to any other repo directly. No central authority required.
links:
- type: satisfies
target: REQ-020
tags: [cross-repo]
fields:
decision: Any repo can link to any other repo directly
rationale: >
Avoids central authority requirement. Matches distributed team
workflows. Transitive resolution handles indirect dependencies.

- id: DD-016
type: design-decision
title: Distributed baselining over centralized manifest
status: accepted
description: >
Repos tag themselves with baseline/* tags; consistency verified not enforced.
links:
- type: satisfies
target: REQ-021
tags: [cross-repo, baseline]
fields:
decision: Repos tag themselves with baseline/* tags; consistency verified not enforced
rationale: >
No platform repo required. Each repo joins baselines independently.
Matches OSLC global configuration model where contributions are optional.

- id: DD-017
type: design-decision
title: Transitive dependency resolution
status: accepted
description: >
Declare direct dependencies only; discover transitive deps automatically.
links:
- type: satisfies
target: REQ-020
tags: [cross-repo]
fields:
decision: Declare direct dependencies only; discover transitively
rationale: >
Scales naturally. Avoids redundant declarations. Similar to cargo/npm
dependency resolution.
63 changes: 63 additions & 0 deletions artifacts/features.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -514,3 +514,66 @@ artifacts:
target: DD-012
fields:
phase: phase-3

- id: FEAT-033
type: feature
title: Externals config block and prefix resolution
status: draft
links:
- type: satisfies
target: REQ-020
tags: [cross-repo]

- id: FEAT-034
type: feature
title: rivet sync — fetch external repos
status: draft
links:
- type: satisfies
target: REQ-020
tags: [cross-repo, cli]

- id: FEAT-035
type: feature
title: rivet lock — pin externals to commits
status: draft
links:
- type: satisfies
target: REQ-020
tags: [cross-repo, cli]

- id: FEAT-036
type: feature
title: rivet baseline verify — cross-repo validation
status: draft
links:
- type: satisfies
target: REQ-021
tags: [cross-repo, baseline, cli]

- id: FEAT-037
type: feature
title: Embedded WASM/JS assets for single binary
status: draft
links:
- type: satisfies
target: REQ-022
tags: [packaging, wasm]

- id: FEAT-038
type: feature
title: Cross-repo link validation in rivet validate
status: draft
links:
- type: satisfies
target: REQ-020
tags: [cross-repo, validation]

- id: FEAT-039
type: feature
title: Dashboard external project browsing
status: draft
links:
- type: satisfies
target: REQ-020
tags: [cross-repo, dashboard]
36 changes: 36 additions & 0 deletions artifacts/requirements.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -251,3 +251,39 @@ artifacts:
fields:
priority: must
category: functional

- id: REQ-020
type: requirement
title: Cross-repository artifact linking via prefixed IDs
status: draft
description: >
Rivet projects must be able to declare external dependencies on other
rivet repositories and reference their artifacts using prefix:ID syntax.
tags: [cross-repo, traceability]
fields:
priority: must
category: functional

- id: REQ-021
type: requirement
title: Distributed baselining via convention tags
status: draft
description: >
Multiple rivet repositories must be able to form consistent baselines
using git tags without requiring a central platform repository.
tags: [cross-repo, baseline]
fields:
priority: should
category: functional

- id: REQ-022
type: requirement
title: Single-binary WASM asset embedding
status: draft
description: >
The rivet binary must optionally embed all WASM and JavaScript assets
so it can be distributed as a single self-contained executable.
tags: [packaging, wasm]
fields:
priority: should
category: functional
1 change: 1 addition & 0 deletions rivet-cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ path = "src/main.rs"
[features]
default = []
wasm = ["rivet-core/wasm"]
embed-wasm = []

[dependencies]
rivet-core = { path = "../rivet-core" }
Expand Down
Loading
Loading