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
13 changes: 13 additions & 0 deletions .github/workflows/plugin-validate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
# P2b: validate-bp-contract's stable-ID assertions (8/14) diff the
# taxonomy/events id-sets against the merge-base with origin/main and
# FAIL CLOSED on shallow history — full history is load-bearing.
# N-6 (issue): on fork PRs `origin` is the fork, so the baseline is
# fork-controlled; prefer github.base_ref if forks are ever enabled.
fetch-depth: 0

- uses: actions/setup-node@v4
with:
Expand All @@ -42,3 +49,9 @@ jobs:

- name: Run plugin-registry conformance tests (path-contain regression lock)
run: node tests/test-plugin-registry.mjs

- name: Validate bp contracts (assertions 0 + 1-15, P2b)
run: node scripts/validate-bp-contract.mjs --project "$GITHUB_WORKSPACE"

- name: Run validate-bp-contract self-tests (golden corpus + stable-ID E2E)
run: node tests/test-validate-bp-contract.mjs
15 changes: 15 additions & 0 deletions patterns/bp-001.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-001",
"title": "Standard implementation workflow",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-002.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-002",
"title": "Proactive milestone storage",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-003.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-003",
"title": "Promote project-specific best practices to global memory",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-004.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-004",
"title": "Machine-readable index for token efficiency",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-005.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-005",
"title": "Enforcement lives in consuming repos, not rule repos",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-006.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-006",
"title": "Push only after all verification steps complete",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-008.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-008",
"title": "Redo properly instead of patching retroactively",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-009.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-009",
"title": "Store rule violations as evidence for enforcement",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-010.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-010",
"title": "Habits override knowledge — always add mechanical enforcement",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-011.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-011",
"title": "Local files first, external actions only after confirmation",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
15 changes: 15 additions & 0 deletions patterns/bp-012.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{
"id": "bp-012",
"title": "Complete session wrap-up — episodic memory, changes, handoff",
"gates": {
"plan_approval": "STRONG",
"pre_checkpoint": "STRONG",
"post_checkpoint": "STRONG"
},
"stop": {
"tier": "STRONG"
},
"taxonomy_ref": "patterns/taxonomy.json",
"taxonomy_version": "sha256:7ea41ed82edef968baee6880f040008080afd962fec9120336ee336796013cc4",
"events_version": "sha256:13f01e5a599272b349eabd66694b7898e68438e8aad6497e80a9b780bea34ab0"
}
Loading
Loading