Skip to content

Commit 7d052ec

Browse files
fix(ci): run graphify update before stale-graph check; accept ancestor commits
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 8e37fdd commit 7d052ec

8 files changed

Lines changed: 189 additions & 55 deletions

File tree

.github/workflows/ci.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ jobs:
4848
with:
4949
python-version: "3.11"
5050

51-
- name: Install package and pytest
51+
- name: Install package, pytest, and Graphify
5252
run: |
5353
python -m pip install --quiet pytest
5454
python -m pip install --quiet -e .
55+
python -m pip install --quiet -r requirements.txt
5556
5657
- name: Verify required files exist (Python)
5758
shell: python
@@ -126,6 +127,9 @@ jobs:
126127
- name: Validate project layout (graphstack validate)
127128
run: python -m graphstack validate
128129

130+
- name: Refresh knowledge graph (CI)
131+
run: graphify update .
132+
129133
- name: Fail if knowledge graph is stale vs HEAD
130134
run: python -m graphstack validate --fail-stale-graph
131135

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ All notable changes to GraphStack are documented here.
2121

2222
### Fixed
2323
- **Graph staleness check**`validate --fail-stale-graph` accepts `HEAD~1` when the graph was built before a dedicated graph-artifacts commit (common release workflow).
24-
- **CI validate job**`actions/checkout` uses `fetch-depth: 2` (shallow clones hid `HEAD~1` and failed stale-graph checks); validate steps use `python -m graphstack` for Windows PATH reliability.
24+
- **CI validate job**`actions/checkout` uses `fetch-depth: 2`; validate steps use `python -m graphstack`; CI runs `graphify update .` before `--fail-stale-graph` (graph built on an older commit than HEAD no longer fails shallow clones).
2525

2626
---
2727

graphify-out/GRAPH_REPORT.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# Graph Report - graphstack (2026-05-17)
22

33
## Corpus Check
4-
- 20 files · ~5,707 words
4+
- 20 files · ~5,985 words
55
- Verdict: corpus is large enough that graph structure adds value.
66

77
## Summary
8-
- 459 nodes · 570 edges · 30 communities (26 shown, 4 thin omitted)
9-
- Extraction: 92% EXTRACTED · 8% INFERRED · 0% AMBIGUOUS · INFERRED: 43 edges (avg confidence: 0.8)
8+
- 461 nodes · 575 edges · 30 communities (26 shown, 4 thin omitted)
9+
- Extraction: 92% EXTRACTED · 8% INFERRED · 0% AMBIGUOUS · INFERRED: 44 edges (avg confidence: 0.8)
1010
- Token cost: 0 input · 0 output
1111

1212
## Graph Freshness
13-
- Built from commit: `68d5e32f`
13+
- Built from commit: `8e37fdd8`
1414
- Run `git rev-parse HEAD` and compare to check if the graph is stale.
1515
- Run `graphify update .` after code changes (no API cost).
1616

@@ -43,9 +43,9 @@
4343
- [[_COMMUNITY_Community 28|Community 28]]
4444

4545
## God Nodes (most connected - your core abstractions)
46-
1. `GraphStack 🧠⚡` - 18 edges
47-
2. `echo()` - 17 edges
48-
3. `run_checks()` - 17 edges
46+
1. `run_checks()` - 18 edges
47+
2. `GraphStack 🧠⚡` - 18 edges
48+
3. `echo()` - 17 edges
4949
4. `ORCHESTRATOR` - 12 edges
5050
5. `Transition Rules` - 12 edges
5151
6. `run_git()` - 11 edges
@@ -70,7 +70,7 @@
7070

7171
### Community 0 - "Community 0"
7272
Cohesion: 0.1
73-
Nodes (34): git_available(), graphify_available(), _brief_is_template(), _brief_status(), _build_parser(), check_board_tasks(), check_brief(), check_graph() (+26 more)
73+
Nodes (36): git_available(), graphify_available(), _brief_is_template(), _brief_status(), _build_parser(), check_board_tasks(), check_brief(), check_graph() (+28 more)
7474

7575
### Community 1 - "Community 1"
7676
Cohesion: 0.07
@@ -157,7 +157,7 @@ Cohesion: 0.33
157157
Nodes (5): code:block1 (board/), GraphStack GNAP Board, How It Works, Task File Format, Why Git?
158158

159159
## Knowledge Gaps
160-
- **193 isolated node(s):** `GNAP board manager — pure Python port of ``scripts/board.sh``. JSON schema is`, `Stage the board directory and commit silently — never fails the command.`, `Top-level CLI dispatcher. Five sub-commands: - ``board`` — GNAP task boa`, `Entry point for both ``python -m graphstack`` and unit tests.`, `Path and configuration constants used across the package. Paths are resolved` (+188 more)
160+
- **194 isolated node(s):** `GNAP board manager — pure Python port of ``scripts/board.sh``. JSON schema is`, `Stage the board directory and commit silently — never fails the command.`, `Top-level CLI dispatcher. Five sub-commands: - ``board`` — GNAP task boa`, `Entry point for both ``python -m graphstack`` and unit tests.`, `Path and configuration constants used across the package. Paths are resolved` (+189 more)
161161
These have ≤1 connection - possible missing edges or undocumented components.
162162
- **4 thin communities (<3 nodes) omitted from report** — run `graphify query` to explore isolated nodes.
163163

@@ -168,13 +168,13 @@ _Questions this graph is uniquely positioned to answer:_
168168
_High betweenness centrality (0.017) - this node is a cross-community bridge._
169169
- **Why does `echo()` connect `Community 2` to `Community 8`, `Community 0`?**
170170
_High betweenness centrality (0.011) - this node is a cross-community bridge._
171-
- **Why does `Quick Start` connect `Community 9` to `Community 5`?**
172-
_High betweenness centrality (0.011) - this node is a cross-community bridge._
171+
- **Are the 7 inferred relationships involving `run_checks()` (e.g. with `test_validate_reports_template_brief_as_warning()` and `test_validate_strict_template_brief_is_error()`) actually correct?**
172+
_`run_checks()` has 7 INFERRED edges - model-reasoned connections that need verification._
173173
- **Are the 14 inferred relationships involving `echo()` (e.g. with `_print_task()` and `cmd_status()`) actually correct?**
174174
_`echo()` has 14 INFERRED edges - model-reasoned connections that need verification._
175-
- **Are the 6 inferred relationships involving `run_checks()` (e.g. with `test_validate_reports_template_brief_as_warning()` and `test_validate_strict_template_brief_is_error()`) actually correct?**
176-
_`run_checks()` has 6 INFERRED edges - model-reasoned connections that need verification._
177175
- **What connects `GNAP board manager — pure Python port of ``scripts/board.sh``. JSON schema is`, `Stage the board directory and commit silently — never fails the command.`, `Top-level CLI dispatcher. Five sub-commands: - ``board`` — GNAP task boa` to the rest of the system?**
178-
_193 weakly-connected nodes found - possible documentation gaps or missing edges._
176+
_194 weakly-connected nodes found - possible documentation gaps or missing edges._
179177
- **Should `Community 0` be split into smaller, more focused modules?**
180-
_Cohesion score 0.1 - nodes in this community are weakly interconnected._
178+
_Cohesion score 0.1 - nodes in this community are weakly interconnected._
179+
- **Should `Community 1` be split into smaller, more focused modules?**
180+
_Cohesion score 0.07 - nodes in this community are weakly interconnected._

graphify-out/graph.html

Lines changed: 4 additions & 4 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)