Skip to content

Commit 8bc192e

Browse files
authored
Merge pull request #308 from flyingrobots/feat/h1-bootstrap-spec
Resolved 1 lingering review-thread issue; docs/spec alignment for Hill 1 Semantic Bootstrap.
2 parents bb4946f + 903ca3e commit 8bc192e

7 files changed

Lines changed: 350 additions & 27 deletions

File tree

GRAPH_SCHEMA.md

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ Node prefixes are grouped into five categories. **Unknown prefixes produce a war
9898
| `feature:` | Feature grouping within a milestone | `feature:BDK-SCHEMA` |
9999
| `task:` | Atomic unit of work | `task:BDK-001` |
100100
| `issue:` | GitHub/tracker issue | `issue:180` |
101+
| `pr:` | Pull request referenced from repo artifacts | `pr:308` |
101102
| `phase:` | Project phase (alias for milestone in views) | `phase:alpha` |
102103

103104
### Knowledge
@@ -138,23 +139,30 @@ Node prefixes are grouped into five categories. **Unknown prefixes produce a war
138139
| Prefix | Purpose | Example |
139140
|--------|---------|---------|
140141
| `commit:` | Git commit (auto-generated by hooks) | `commit:934b6e3` |
142+
| `repo:` | Cross-repo qualifier namespace for remote node IDs | `repo:owner/name:crate:echo-core` |
143+
| `epoch:` | System-generated temporal/version marker for time-travel | `epoch:934b6e3` |
141144

142145
**System prefix rules:**
143146
- `commit:` nodes are created automatically by the post-commit hook.
144147
- User-provided `commit:` nodes in import files are **rejected** (hard error).
148+
- `repo:` is reserved for system-managed cross-repo qualification and should not be introduced ad hoc in import files.
149+
- `epoch:` nodes are created automatically by the epoch/timeline machinery and are not authored directly in import files.
145150
- Future system prefixes will use the `sys-` namespace (e.g., `sys-audit:`).
146151

147152
---
148153

149154
## 4. Edge Types
150155

151-
Eight directed edge types are defined. Unknown edge types are a **hard error**.
156+
Eleven directed edge types are defined. Unknown edge types are a **hard error**.
152157

153158
| Type | Definition | Direction | Example |
154159
|------|-----------|-----------|---------|
155160
| `implements` | Source implements the target | task → feature, code → spec | `task:BDK-002 → feature:BDK-SCHEMA` |
156161
| `augments` | Source extends or enhances target | extension → base | `module:auth-oauth → module:auth` |
157162
| `relates-to` | General semantic association | either direction | `concept:zero-trust → adr:001` |
163+
| `references` | Source explicitly references target | artifact → referenced artifact | `doc:release-notes → issue:180` |
164+
| `touches` | Source changes or directly touches target | commit → file | `commit:934b6e3 → file:src/auth.js` |
165+
| `groups` | Source groups or contains target | parent → child | `module:auth → file:src/auth.js` |
158166
| `blocks` | Source blocks progress on target | blocker → blocked | `task:BDK-001 → task:BDK-002` |
159167
| `belongs-to` | Source is a child/member of target | child → parent | `feature:BDK-SCHEMA → milestone:BEDROCK` |
160168
| `consumed-by` | Source is consumed/used by target | resource → consumer | `pkg:chalk → module:format` |
@@ -261,7 +269,7 @@ Applying the same valid import file twice produces identical graph state. The se
261269
| `Milestone:BEDROCK` | Lowercase prefix | Use `milestone:BEDROCK` — prefix is always lowercase |
262270
| `my node` | No whitespace | Whitespace is not allowed in node IDs |
263271
| `commit:abc123` (in import) | System prefix | `commit:` nodes cannot be created via import |
264-
| `task:A --[explodes]--> task:B` | Known edge type | `explodes` is not one of the 8 valid edge types |
272+
| `task:A --[explodes]--> task:B` | Known edge type | `explodes` is not one of the 11 valid edge types |
265273
| `task:X blocks task:X` | Self-edge | `blocks` does not allow self-edges |
266274
| `confidence: 1.5` | Confidence range | Must be in [0.0, 1.0] |
267275
| `confidence: NaN` | Finite number | NaN, Infinity, and non-numbers are rejected |
@@ -332,26 +340,26 @@ const NODE_ID = /^[a-z][a-z0-9-]*:[A-Za-z0-9._\/@-]+$/;
332340

333341
```js
334342
const CANONICAL_PREFIXES = [
335-
'milestone', 'feature', 'task', 'issue', 'phase',
343+
'milestone', 'feature', 'task', 'issue', 'pr', 'phase',
336344
'spec', 'adr', 'doc', 'concept', 'decision',
337345
'crate', 'module', 'pkg', 'file',
338346
'person', 'tool',
339347
'event', 'metric',
340-
'commit',
341348
];
342349
```
343350

344351
### Edge Type Array
345352

346353
```js
347354
const EDGE_TYPES = [
348-
'implements', 'augments', 'relates-to', 'blocks',
355+
'implements', 'augments', 'relates-to', 'references',
356+
'touches', 'groups', 'blocks',
349357
'belongs-to', 'consumed-by', 'depends-on', 'documents',
350358
];
351359
```
352360

353361
### System Prefixes
354362

355363
```js
356-
const SYSTEM_PREFIXES = ['commit'];
364+
const SYSTEM_PREFIXES = ['commit', 'repo', 'epoch'];
357365
```

ROADMAP.md

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -89,40 +89,56 @@ Before significant work is accepted into an active Hill or supporting lane, we s
8989

9090
If those answers are fuzzy, the work is not ready for planning commitment yet.
9191

92-
## Current Focus: Stabilize And Clarify
92+
## Current Focus: Hill 1 Semantic Bootstrap
9393

9494
Status:
9595

9696
- in progress
9797

98+
Sponsor user:
99+
100+
- technical lead / staff engineer / architect, or autonomous coding agent, entering an unfamiliar repository
101+
102+
Job to be done:
103+
104+
- quickly produce a trustworthy first-pass semantic map of repository artifacts with minimal manual input
105+
98106
Goal:
99107

100-
- align the product story, sponsor user, backlog shape, and planning model around inference-first semantic repository intelligence
108+
- deliver the first runnable `git mind bootstrap` flow for unfamiliar repositories
101109

102110
Deliverables:
103111

104-
- rewritten README
105-
- rewritten north star
106-
- new design frame
107-
- roadmap reset around hills
108-
- explicit boundary with `think`
109-
- retirement of stale GitHub milestone machinery
110-
- clear distinction between live control-plane docs and historical references
112+
- bootstrap command contract with default write behavior and `--dry-run`
113+
- repo-local artifact inventory and scan boundaries
114+
- first-pass entity extraction for files, docs, ADRs, modules, commits, and repo-local issue/PR references
115+
- first-pass relationship inference for `documents`, `references`, `touches`, `groups`, and conservative `implements`
116+
- provenance and confidence surfacing for inferred assertions
117+
- a reviewable follow-up path for weak-confidence bootstrap output
118+
- implementation issues `#304` through `#307` moved into merged runnable behavior
111119

112120
Exit criteria:
113121

114-
- top-level docs tell one coherent story
115-
- the repo has a single primary sponsor user
116-
- the backlog is no longer pretending to be release milestones
117-
- the next hill is stated clearly enough to judge future work against it
122+
- `git mind bootstrap` runs end-to-end on a representative unfamiliar repository
123+
- the command emits useful human-readable and JSON summary output
124+
- inferred assertions carry provenance and confidence
125+
- weak-confidence inferences are visible and reviewable
126+
- day-one value appears before the user has to hand-author the graph
127+
128+
Primary references:
129+
130+
- [docs/design/git-mind.md](docs/design/git-mind.md)
131+
- [docs/design/h1-semantic-bootstrap.md](docs/design/h1-semantic-bootstrap.md)
132+
- issue [#303](https://github.com/flyingrobots/git-mind/issues/303)
133+
- issues [#304](https://github.com/flyingrobots/git-mind/issues/304), [#305](https://github.com/flyingrobots/git-mind/issues/305), [#306](https://github.com/flyingrobots/git-mind/issues/306), [#307](https://github.com/flyingrobots/git-mind/issues/307)
118134

119135
---
120136

121137
## Hill Map
122138

123139
```mermaid
124140
flowchart LR
125-
C["Current Focus: Stabilize And Clarify"] --> H1["Hill 1: Semantic Bootstrap"]
141+
C["Current Focus: Hill 1 Semantic Bootstrap"] --> H1["Hill 1: Semantic Bootstrap"]
126142
H1 --> H2["Hill 2: Query And Receipts"]
127143
H2 --> H3["Hill 3: Living Map Review Loop"]
128144
H3 --> L["Supporting Lanes: adoption, content, extensions, workflow layers"]
@@ -155,7 +171,7 @@ Suggested first artifact set:
155171
- markdown docs
156172
- ADRs
157173
- commit history
158-
- issue and review references discoverable from repo artifacts
174+
- issue, PR, and commit references discoverable from repo artifacts
159175

160176
Playback:
161177

docs/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ These describe what Git Mind is now and how work should be judged:
1111
- [README.md](../README.md) — current product summary
1212
- [ROADMAP.md](../ROADMAP.md) — active Hills, supporting lanes, and playback cadence
1313
- [Git Mind Product Frame](./design/git-mind.md) — IBM Design Thinking style product frame
14+
- [Hill 1 Semantic Bootstrap Spec](./design/h1-semantic-bootstrap.md) — first executable Hill 1 slice
1415
- [Git Mind North Star](./VISION_NORTH_STAR.md) — longer-form strategic articulation
1516
- [ADR-0005](./adr/ADR-0005.md) — official planning and governance model
1617

0 commit comments

Comments
 (0)