Skip to content

Commit d360f0a

Browse files
committed
Merge remote-tracking branch 'origin/main' into develop
2 parents 6580445 + b270e2e commit d360f0a

152 files changed

Lines changed: 44851 additions & 1711 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.chronomemory/events.wal

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

.chronomemory/snapshot.json

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

.github/dependabot.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,24 @@ updates:
44
directory: "/"
55
schedule:
66
interval: "weekly"
7+
day: "monday"
78
open-pull-requests-limit: 5
9+
labels:
10+
- "dependencies"
11+
groups:
12+
dev-deps:
13+
patterns:
14+
- "ruff"
15+
- "mypy"
16+
- "pytest*"
17+
- "types-*"
818

919
- package-ecosystem: "github-actions"
1020
directory: "/"
1121
schedule:
1222
interval: "weekly"
23+
day: "monday"
1324
open-pull-requests-limit: 5
25+
labels:
26+
- "dependencies"
27+
- "ci"

.github/workflows/codeql.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
name: CodeQL
2+
3+
on:
4+
push:
5+
branches: [main, develop]
6+
pull_request:
7+
branches: [main, develop]
8+
schedule:
9+
- cron: '30 2 * * 1' # Weekly Monday 02:30 UTC
10+
11+
permissions:
12+
actions: read
13+
contents: read
14+
security-events: write
15+
16+
jobs:
17+
analyze:
18+
name: Analyze (Python)
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v6
22+
23+
- name: Initialize CodeQL
24+
uses: github/codeql-action/init@v4
25+
with:
26+
languages: python
27+
queries: security-extended,security-and-quality
28+
29+
- name: Autobuild
30+
uses: github/codeql-action/autobuild@v4
31+
32+
- name: Perform CodeQL Analysis
33+
uses: github/codeql-action/analyze@v4
34+
with:
35+
category: "/language:python"

.github/workflows/dev-release.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
workflow_dispatch:
77

88
permissions:
9-
contents: read
9+
contents: write # needed to create/update the rolling 'latest' GitHub pre-release
1010

1111
jobs:
1212
test:
@@ -30,7 +30,7 @@ jobs:
3030
runs-on: ubuntu-latest
3131
environment: pypi
3232
permissions:
33-
contents: read
33+
contents: write # write required to create/update the dev GitHub pre-release
3434
id-token: write
3535
steps:
3636
- uses: actions/checkout@v6
@@ -66,6 +66,22 @@ jobs:
6666
uses: pypa/gh-action-pypi-publish@release/v1
6767
continue-on-error: true # version already exists on PyPI is not a failure
6868

69+
# Create/update a rolling GitHub pre-release so users can track dev builds.
70+
# NOTE: when the first official stable release ships, remove this step and
71+
# instead rely on release.yml with --latest to make stable the default.
72+
- name: Create/update rolling dev GitHub pre-release
73+
env:
74+
GH_TOKEN: ${{ github.token }}
75+
run: |
76+
# Delete any existing 'latest-dev' tag+release so we can overwrite it.
77+
gh release delete latest-dev --repo ${{ github.repository }} \
78+
--yes --cleanup-tag 2>/dev/null || true
79+
gh release create latest-dev dist/* \
80+
--title "Latest dev build (${DEV_VERSION})" \
81+
--notes "Rolling dev pre-release built from the develop branch." \
82+
--prerelease \
83+
--no-latest
84+
6985
docs-build:
7086
needs: build-and-publish
7187
runs-on: ubuntu-latest

.github/workflows/release.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,10 +57,14 @@ jobs:
5757
env:
5858
GH_TOKEN: ${{ github.token }}
5959
run: |
60+
# NOTE: using --no-latest during the dev/pre-release phase so that the
61+
# rolling dev pre-release stays as the visible "latest" on GitHub.
62+
# FIRST STABLE RELEASE: change --no-latest to --latest here, and also
63+
# update kairos_updater.rs default channel back to Stable.
6064
gh release create "${{ github.ref_name }}" dist/* \
6165
--title "${{ github.ref_name }}" \
6266
--generate-notes \
63-
--latest || echo "Release already exists — skipping"
67+
--no-latest || echo "Release already exists — skipping"
6468
6569
pypi-publish:
6670
needs: build

.gitignore

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ temp/
4141
# Secrets and local-only artifacts
4242
.env
4343
.repo-index/
44+
# Local diagnostic / one-off scripts (absolute paths, never commit)
45+
_diag_*.py
4446

4547
# .specsmith/ split: committed (audit chain) vs gitignored (runtime cache)
4648
# Keep committed: config.yml, requirements.json, testcases.json
@@ -60,10 +62,15 @@ temp/
6062
.specsmith/logs/
6163
.specsmith/sessions/
6264
.specsmith/agent-reports/
65+
# Dispatch DAG event logs (runtime only — replay from .chronomemory if needed)
66+
.specsmith/dispatch/
67+
# Generated migration scan manifest (re-created by specsmith esdb migrate)
68+
.specsmith/esdb_migration_manifest.json
6369

6470
# Old Warp branding directory — renamed to .kairos/; prevent accidental re-creation
6571
.warp/
6672

67-
# Rust build artifacts (chronomemory crate)
73+
# Rust build artifacts
6874
crates/chronomemory/target/
75+
app/target/
6976

.specsmith/compliance/README.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# .specsmith/compliance/
2+
3+
Project-specific compliance overlays for AI regulation.
4+
5+
## Structure
6+
7+
Each file overrides the built-in regulation status for this project:
8+
eu-ai-act.yaml — EU AI Act (Regulation 2024/1689)
9+
nist-rmf.yaml — NIST AI RMF 1.0 + AI 600-1
10+
omb-m-24-10.yaml — OMB M-24-10
11+
colorado-sb24-205.yaml — Colorado AI Act (effective Feb 2026)
12+
texas-hb1709.yaml — Texas AI Transparency Act
13+
etc.
14+
15+
## Usage
16+
17+
# Check compliance for all regulations
18+
specsmith compliance check
19+
20+
# Generate compliance report
21+
specsmith compliance report --format html --output compliance-report.html
22+
23+
# Store results to ESDB audit trail
24+
specsmith compliance audit
25+
26+
See: https://specsmith.readthedocs.io/en/stable/compliance/
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# EU AI Act (Regulation 2024/1689) — project overlay
2+
#
3+
# This file allows overriding compliance status for this specific project.
4+
# Leave fields empty to use specsmith's auto-detection.
5+
#
6+
# regulation_id: eu-ai-act
7+
# project notes:
8+
9+
risk_tier: minimal_risk # prohibited | high_risk | gpai | minimal_risk
10+
is_gpai: false # true if this is a General Purpose AI model
11+
gpai_systemic_risk: false # true if > 10^25 FLOP training compute
12+
13+
# Override specific article status (auto-detected if absent):
14+
# article_overrides:
15+
# Art.9:
16+
# status: compliant
17+
# notes: "Risk management system via specsmith AEE pipeline"

.specsmith/governance/axioms.yaml

Lines changed: 200 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
# Generated by specsmith migrate m001
2+
# Edit this file; original MD kept as view.
3+
4+
content: '# Epistemic Axioms — specsmith
5+
6+
7+
specsmith is built on Applied Epistemic Engineering (AEE) principles. This document
8+
9+
defines the five axioms as they apply to specsmith''s own development.
10+
11+
12+
See the full AEE primer: https://specsmith.readthedocs.io/en/stable/aee-primer/
13+
14+
15+
---
16+
17+
18+
## Axiom 1: Observability
19+
20+
21+
Every requirement in `docs/REQUIREMENTS.md` must be fully inspectable. Hidden assumptions
22+
23+
are a stop condition (H13).
24+
25+
26+
**In practice:**
27+
28+
- All REQ-XXX entries must have `**Platform:**` or `**Boundary:**` fields
29+
30+
- Technology decisions in architecture.md must declare alternatives considered
31+
32+
- AGENTS.md proposals must include `Assumptions:` field
33+
34+
35+
---
36+
37+
38+
## Axiom 2: Falsifiability
39+
40+
41+
Every accepted requirement must have a corresponding test. Unchallenged claims are
42+
not
43+
44+
engineering artifacts.
45+
46+
47+
**In practice:**
48+
49+
- Every REQ-XXX with status ACCEPTED must have TEST-XXX in TESTS.md with `Covers:`
50+
reference
51+
52+
- `specsmith audit` enforces REQ↔TEST consistency
53+
54+
- `specsmith epistemic-audit` detects accepted requirements without test coverage
55+
56+
57+
---
58+
59+
60+
## Axiom 3: Irreducibility
61+
62+
63+
Requirements must be decomposed to atomic, independently verifiable primitives.
64+
65+
66+
**In practice:**
67+
68+
- Requirements with more than one core claim should be split
69+
70+
- `specsmith stress-test` flags compound claim patterns
71+
72+
- Each REQ-XXX should be independently testable
73+
74+
75+
---
76+
77+
78+
## Axiom 4: Reconstructability
79+
80+
81+
Every failed requirement can be reconstructed. Failure modes are recovery opportunities.
82+
83+
84+
**In practice:**
85+
86+
- `specsmith epistemic-audit` emits `RecoveryProposal` objects for all failure modes
87+
88+
- Recovery proposals require human approval before applying (H2)
89+
90+
- DEPRECATED requirements are kept in the ledger — never deleted
91+
92+
93+
---
94+
95+
96+
## Axiom 5: Convergence
97+
98+
99+
Systematic application of stress-test (S) and recovery (R) will converge to equilibrium.
100+
101+
102+
**In practice:**
103+
104+
- Run `specsmith stress-test` after every batch of new requirements
105+
106+
- A passing `specsmith epistemic-audit` with `Equilibrium: YES` is the milestone
107+
gate
108+
109+
- CI can gate on `specsmith epistemic-audit --threshold 0.6`
110+
111+
112+
---
113+
114+
115+
## Current Epistemic Status
116+
117+
118+
Run `specsmith epistemic-audit --project-dir .` to check current status:
119+
120+
- Equilibrium: [run to check]
121+
122+
- Overall certainty: [run to check]
123+
124+
- Logic knots: [run to check]
125+
126+
127+
---
128+
129+
130+
## Certainty Threshold
131+
132+
133+
specsmith''s epistemic threshold: **0.7** (configured in `scaffold.yml`)
134+
135+
136+
P1 requirements with confidence below MEDIUM are a stop condition per H13.
137+
138+
139+
---
140+
141+
142+
## External Validation: OEA Recursive Generative Stability
143+
144+
145+
The five AEE axioms above describe the engineering properties that a governed AI
146+
system
147+
148+
must have. The question of *why* these axioms specifically prevent hallucination
149+
and drift
150+
151+
was answered empirically by the study:
152+
153+
154+
> *"Ontology-Epistemic-Agentic (OEA) Recursive Generative Stability: A Unified Framework
155+
156+
> for Preventing Hallucination and Drift in Large Language Models"*
157+
158+
> — BitConcepts Research, 2026
159+
160+
161+
The OEA study ran controlled ablation experiments across several LLM families and
162+
163+
identified the following correspondences between AEE axioms and measurable hallucination
164+
165+
control mechanisms:
166+
167+
168+
| AEE Axiom | OEA Control Mechanism | Hard Rule |
169+
170+
|---|---|---|
171+
172+
| Axiom 1 — Observability | Epistemic scope bounding (H15) | H15 |
173+
174+
| Axiom 2 — Falsifiability | Calibration direction (H17); Falsifiability required
175+
(H20) | H17, H20 |
176+
177+
| Axiom 3 — Irreducibility | No undisclosed model assumptions (H21) | H21 |
178+
179+
| Axiom 4 — Reconstructability | Anti-drift recursion guard (H16) | H16 |
180+
181+
| Axiom 5 — Convergence | RAG retrieval filtering (H18); Synthetic contamination
182+
prevention (H19) | H18, H19 |
183+
184+
185+
H22 (cross-platform CI enforcement) addresses the infrastructure dimension of the
186+
OEA
187+
188+
cross-platform validity requirement.
189+
190+
191+
In concrete terms: a system that enforces H15–H22 operationalises the OEA framework.
192+
193+
Specsmith''s governance layer is the first open-source AEE toolkit to encode these
194+
195+
findings as machine-enforceable rules via `specsmith validate`.
196+
197+
'
198+
generated_by: specsmith migrate (m001)
199+
kind: axioms
200+
source_md: docs/governance/EPISTEMIC-AXIOMS.md

0 commit comments

Comments
 (0)