Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
c752732
Prepare isolated task worktrees
armiol Jul 24, 2026
4d4a04b
Install modern validation build protocol
armiol Jul 24, 2026
cd20671
Resolve protocol bootstrap review findings
armiol Jul 24, 2026
2653a8a
Finalize protocol review convergence
armiol Jul 24, 2026
7d89378
Merge T-0001 protocol bootstrap into dev
armiol Jul 24, 2026
2b6a1bb
Ignore local editor workspace files
armiol Jul 24, 2026
615649a
Merge T-0001 integration verification correction
armiol Jul 24, 2026
0257b2b
Record T-0001 integration closure
armiol Jul 24, 2026
09b94d0
Merge T-0001 closure record
armiol Jul 24, 2026
2ccab8a
Record T-0002 validation correctness plan
armiol Jul 24, 2026
be6daf5
feat(validation): add contract diagnostics kernel
armiol Jul 24, 2026
d4a3f3c
fix(validation): support message-level violations
armiol Jul 24, 2026
d2eb687
fix(validation): retain field metadata placeholders
armiol Jul 24, 2026
4848a4c
fix(validation): format scalar type placeholders
armiol Jul 24, 2026
716cc27
Record T-0002 contract kernel review
armiol Jul 24, 2026
da26780
refactor(validation): orchestrate validators by field
armiol Jul 24, 2026
b831f22
fix(validation): preserve strict violation envelopes
armiol Jul 24, 2026
d1b21de
Record T-0002 orchestration review
armiol Jul 24, 2026
2494e26
fix(validation): align required and require semantics
armiol Jul 24, 2026
e597039
fix(validation): align goes and choice semantics
armiol Jul 24, 2026
b3c5b1f
test(validation): migrate invalid numeric presence fixtures
armiol Jul 24, 2026
b5d72a7
test(validation): cover presence configuration edges
armiol Jul 24, 2026
cd93dbf
test(validation): cover invalid presence option boundaries
armiol Jul 24, 2026
95c520d
style(validation): restore standard license headers
armiol Jul 24, 2026
509b031
Record T-0002 presence semantics review
armiol Jul 24, 2026
e9ae368
fix(validation): enforce exact numeric bounds
armiol Jul 24, 2026
4339341
test(validation): complete numeric contract coverage
armiol Jul 24, 2026
d6dc7a3
style(validation): restore numeric test header
armiol Jul 24, 2026
0567357
Record T-0002 numeric semantics review
armiol Jul 24, 2026
43a7b60
fix(validation): correct distinct equality semantics
armiol Jul 24, 2026
88bc9b3
fix(validation): format distinct diagnostics
armiol Jul 24, 2026
bb0895a
Record T-0002 distinct semantics review
armiol Jul 24, 2026
e8c9d87
fix(validation): propagate nested leaf violations
armiol Jul 24, 2026
f73b471
Record T-0002 nested validation review
armiol Jul 24, 2026
ede45ea
test(validation): enforce ninety percent coverage
armiol Jul 24, 2026
9448506
Record T-0002 coverage gate
armiol Jul 24, 2026
81a8fb0
Record T-0002 specialist review dispatch
armiol Jul 24, 2026
0690ce8
Record T-0002 specialist findings
armiol Jul 24, 2026
35df598
fix(validation): resolve final review findings
armiol Jul 24, 2026
7a814a8
Record T-0002 correction verification
armiol Jul 24, 2026
ce684fd
Record T-0002 reliability follow-up
armiol Jul 24, 2026
dca5f17
test(validation): complete numeric NaN regression matrix
armiol Jul 24, 2026
2c5c09e
Record T-0002 review convergence
armiol Jul 24, 2026
9343084
Record T-0002 TypeDoc gate failure
armiol Jul 24, 2026
78b9eed
build(docs): support inherited JavaScript examples
armiol Jul 24, 2026
d68f5a3
Record T-0002 TypeDoc gate correction
armiol Jul 24, 2026
a8e1baf
Record T-0002 canonical verification
armiol Jul 24, 2026
86d6092
Merge T-0002 validation correctness
armiol Jul 24, 2026
7323d9c
Record T-0002 integration closure
armiol Jul 24, 2026
d7cfbf7
Merge T-0002 closure record
armiol Jul 24, 2026
9723c0a
build(protocol): start T-0003 example and docs
armiol Jul 25, 2026
c2f6b5a
feat(example): modernize validation scenarios and docs
armiol Jul 25, 2026
f8c35e5
fix(example): complete docs and verification coverage
armiol Jul 25, 2026
72ab5e8
test(example): cover contract scenarios
armiol Jul 25, 2026
23335b1
docs: complete T-0003 documentation checks
armiol Jul 25, 2026
c98f01d
fix: address T-0003 review findings
armiol Jul 25, 2026
3979266
fix: close pattern documentation gaps
armiol Jul 25, 2026
117d1a5
docs: scope validation envelope guarantees
armiol Jul 25, 2026
0bf86c6
build(protocol): record T-0003 review convergence
armiol Jul 25, 2026
38ce635
Merge T-0003 example and documentation
armiol Jul 25, 2026
f4f2426
build(protocol): record T-0003 integration closure
armiol Jul 25, 2026
d60fa4a
Merge T-0003 integration closure
armiol Jul 25, 2026
2e62dde
docs: record approved modernization program
armiol Jul 28, 2026
2e2c4c3
build: migrate workspace to pnpm ESM Vitest
armiol Jul 28, 2026
db5d951
build: pin release-age compatible transitives
armiol Jul 28, 2026
1bf3cb4
build: complete NodeNext toolchain migration
armiol Jul 28, 2026
0578817
docs: record T-0004 review findings
armiol Jul 28, 2026
05e85d7
build: resolve final toolchain review findings
armiol Jul 28, 2026
d63f817
docs: record T-0004 residual review findings
armiol Jul 28, 2026
4820d7b
build: harden generated patch targets
armiol Jul 28, 2026
156fc62
test: cover generated patcher guards
armiol Jul 28, 2026
0d17e45
test: cover example patcher guards
armiol Jul 28, 2026
8245222
docs: close T-0004 review
armiol Jul 28, 2026
5e667ec
Merge T-0004 Spine TS toolchain
armiol Jul 28, 2026
df8cbb1
build(protocol): record T-0004 integration closure
armiol Jul 28, 2026
fcebbd3
docs: activate T-0005 architecture task
armiol Jul 28, 2026
cbdaa09
refactor validation runtime type boundaries
armiol Jul 28, 2026
49a9845
docs: record T-0005 review findings
armiol Jul 28, 2026
ec67c1d
fix validation architecture review findings
armiol Jul 28, 2026
65b5979
docs: record T-0005 residual reliability finding
armiol Jul 28, 2026
2e4b91c
harden generated source guard lifecycles
armiol Jul 28, 2026
0de3940
docs: close T-0005 review
armiol Jul 28, 2026
b4b2f79
Merge T-0005 runtime architecture
armiol Jul 28, 2026
69a885f
build(protocol): record T-0005 integration closure
armiol Jul 28, 2026
c2673e8
docs: activate T-0006 time options
armiol Jul 28, 2026
d344c92
feat: validate Spine Time when options
armiol Jul 28, 2026
7e94280
fix: harden Spine Time validation
armiol Jul 28, 2026
b19efd2
test: complete time validation contract coverage
armiol Jul 28, 2026
7bcfd45
test: discriminate time boundary semantics
armiol Jul 28, 2026
7b36a1a
fix: validate unknown time enum values
armiol Jul 28, 2026
913f6bb
fix: align time validation with JVM timestamp range
armiol Jul 28, 2026
03f38f0
docs: close T-0006 review
armiol Jul 28, 2026
7eaf7bf
Merge T-0006 Spine Time validation
armiol Jul 28, 2026
33a0a83
build(protocol): record T-0006 integration closure
armiol Jul 28, 2026
0eb0514
fix(ci): declare root documentation compiler dependency
armiol Jul 29, 2026
e83e9b8
build(protocol): activate T-0007 CI repair
armiol Jul 29, 2026
3525361
build(protocol): record T-0007 verification and review
armiol Jul 29, 2026
b4a0f6d
build(protocol): converge T-0007 review
armiol Jul 29, 2026
3eacc08
Merge T-0007 CI documentation dependency repair
armiol Jul 29, 2026
48a3cca
build(protocol): record T-0007 integration closure
armiol Jul 29, 2026
e735387
ci: update pnpm action setup to node24
armiol Jul 29, 2026
88063ba
test: reject bare pnpm action setup uses
armiol Jul 29, 2026
1c3d4a1
build(protocol): activate T-0008 Node 24 actions
armiol Jul 29, 2026
c80faba
build(protocol): record T-0008 full gate
armiol Jul 29, 2026
22e2307
test: harden pnpm workflow policy guard
armiol Jul 29, 2026
12f56fa
test: parse workflow policy YAML semantically
armiol Jul 29, 2026
78af776
test: scope pnpm workflow action checks
armiol Jul 29, 2026
81da42d
build(protocol): record T-0008 review convergence
armiol Jul 29, 2026
82ce0cc
Merge T-0008 Node 24 action setup
armiol Jul 29, 2026
1f39ab5
build(protocol): record T-0008 integration closure
armiol Jul 29, 2026
039804f
build(protocol): open T-0009 source conventions
armiol Jul 29, 2026
63cd88d
build(protocol): plan T-0009 implementation
armiol Jul 29, 2026
224265d
build(protocol): expose T-0009 task slices
armiol Jul 29, 2026
cf5dfb4
feat: add deterministic source convention check
armiol Jul 29, 2026
45735df
fix: tighten source convention documentation checks
armiol Jul 29, 2026
42d2276
refactor: deepen validation source ownership
armiol Jul 29, 2026
de5a1e1
refactor: own numeric option validators
armiol Jul 29, 2026
5de39f1
refactor: own remaining option validators
armiol Jul 29, 2026
cb4121d
build(protocol): record T-0009 ownership tranches
armiol Jul 29, 2026
1d0a173
docs: complete TypeScript source conventions
armiol Jul 29, 2026
682e671
docs(proto): clarify group A validation fixtures
armiol Jul 29, 2026
8f61b5b
docs(proto): complete validation fixture guidance
armiol Jul 29, 2026
a6e17a4
docs(proto): clarify fixture roles
armiol Jul 29, 2026
4961648
docs(proto): clarify required status states
armiol Jul 29, 2026
226be47
docs: restore package guidance
armiol Jul 29, 2026
025720f
docs: expand restored package guidance
armiol Jul 29, 2026
dfa8f30
docs: clarify source conventions
armiol Jul 29, 2026
520dec4
docs: fix reader guide conventions
armiol Jul 29, 2026
4a5f115
docs: harden source convention checks
armiol Jul 29, 2026
1c9a105
test: enforce package API contract
armiol Jul 29, 2026
1984890
fix: harden T-0009 convention checks
armiol Jul 29, 2026
e40c0c8
test: cover T-0009 review edge cases
armiol Jul 29, 2026
2373a86
build(protocol): record T-0009 review convergence
armiol Jul 29, 2026
4bd013c
Merge T-0009 documentation and source conventions
armiol Jul 29, 2026
60fd57e
build(protocol): record T-0009 integration closure
armiol Jul 29, 2026
d149991
docs: add development guides and version policy
armiol Jul 31, 2026
ed59cd2
docs: correct development guide workflows
armiol Jul 31, 2026
b5f8d1c
docs: enforce clean host setup guidance
armiol Jul 31, 2026
6f10708
docs: use canonical time test example
armiol Jul 31, 2026
0d852fd
Bump version -> 2.0.0-snapshot.7
armiol Jul 31, 2026
8153221
docs: clarify package registry availability
armiol Jul 31, 2026
834c1a6
build(protocol): record T-0010 review convergence
armiol Jul 31, 2026
f2ff606
build(protocol): record T-0010 verification
armiol Jul 31, 2026
0066571
Merge T-0010 development guides
armiol Jul 31, 2026
a34056e
build(protocol): record T-0010 integration closure
armiol Jul 31, 2026
79e7229
feat(example): model domain IDs as messages
armiol Aug 1, 2026
bcfacf2
build(protocol): record T-0011 implementation
armiol Aug 1, 2026
14d424a
fix(docs): enforce domain ID examples
armiol Aug 1, 2026
e76764b
fix(docs): harden Proto example checks
armiol Aug 6, 2026
8e1bad2
fix(docs): enforce direct Proto fields
armiol Aug 6, 2026
c42a26f
build(protocol): record T-0011 review convergence
armiol Aug 6, 2026
18d7479
build(protocol): record T-0011 verification
armiol Aug 6, 2026
d3deaf1
Merge T-0011 domain ID examples
armiol Aug 6, 2026
b13ec80
build(protocol): record T-0011 integration closure
armiol Aug 6, 2026
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
12 changes: 12 additions & 0 deletions .codex/agents/documentation-reviewer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name = "documentation_reviewer"
description = "Checks changed documentation and examples against implemented behavior."
model = "gpt-5.6-terra"
model_reasoning_effort = "medium"
sandbox_mode = "read-only"

developer_instructions = """
Review only documentation affected by the milestone. Verify status, workflow,
links, examples, limitations, and claims against implemented behavior. Flag
concrete omissions or contradictions, not unrelated prose preferences. Do not
edit files or spawn subagents.
"""
13 changes: 13 additions & 0 deletions .codex/agents/implementer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name = "implementer"
description = "Owns one bounded TypeScript implementation or correction batch."
model = "gpt-5.6-terra"
model_reasoning_effort = "medium"

developer_instructions = """
Own one bounded milestone and only its assigned files. Use behavior-focused TDD
for runtime changes, preserve immutable vendored Proto files, run focused
checks, and update durable logs at resumability boundaries. Follow the approved
plan and established architecture unless a concrete blocker is proven. Do not
spawn subagents. Reuse the same context for an aggregated correction batch when
possible.
"""
12 changes: 12 additions & 0 deletions .codex/agents/performance-reliability-reviewer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name = "performance_reliability_reviewer"
description = "Reviews changed runtime and build paths for reliability and bounded-resource behavior."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

developer_instructions = """
Review only changed execution paths and immediate invariants. Prioritize
failure cleanup, deterministic generation, recursion and resource bounds,
regular-expression safety, lifecycle behavior, and missing behavior tests.
Avoid speculative optimization. Do not edit files or spawn subagents.
"""
13 changes: 13 additions & 0 deletions .codex/agents/requirements-splitter.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name = "requirements_splitter"
description = "Splits architecture-significant validation milestones into small ordered tasks."
model = "gpt-5.6-sol"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

developer_instructions = """
Work read-only unless the orchestrator explicitly assigns durable planning
files. Split only public or serialized contracts, validation semantics, new
subsystems, security boundaries, or demonstrated architectural blockers.
Return ordered slices, acceptance criteria, risks, ownership, and exclusions.
Do not plan ordinary fixes and do not spawn subagents.
"""
13 changes: 13 additions & 0 deletions .codex/agents/security-reviewer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name = "security_reviewer"
description = "Performs the final release-readiness security review or an explicitly requested early review."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

developer_instructions = """
Review the authorized scope for concrete TypeScript and Node.js trust-boundary
defects, including unsafe validation, regular-expression denial of service,
dependency and publishing risk, generated source integrity, and sensitive
logging. Run at release readiness or when explicitly requested. Do not edit
files, broaden scope, or spawn subagents.
"""
12 changes: 12 additions & 0 deletions .codex/agents/style-maintainability-reviewer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name = "style_maintainability_reviewer"
description = "Reviews changed code and tests for concrete maintainability and correctness defects."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

developer_instructions = """
Review only the assigned diff and affected execution paths. Prioritize
correctness, ownership, naming, duplication, test quality, and maintainability
over preferences. Check the task requirements ledger and repository standards.
Do not edit files, repeat evidenced broad suites, or spawn subagents.
"""
12 changes: 12 additions & 0 deletions .codex/agents/typescript-api-reviewer.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name = "typescript_api_reviewer"
description = "Reviews TypeScript public API, package metadata, declarations, and Proto compatibility."
model = "gpt-5.6-terra"
model_reasoning_effort = "high"
sandbox_mode = "read-only"

developer_instructions = """
Review changed public and package-internal contracts, declarations, exports,
TypeDoc, package metadata, Proto compatibility, and runtime/type agreement.
Prioritize accidental public leaks, incompatible signatures, false type
guarantees, and missing API documentation. Do not edit files or spawn subagents.
"""
12 changes: 12 additions & 0 deletions .codex/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
model = "gpt-5.6-sol"
model_reasoning_effort = "medium"

[features]
fast_mode = false

[agents]
enabled = true
max_concurrent_threads_per_session = 3
default_subagent_model = "gpt-5.6-terra"
default_subagent_reasoning_effort = "medium"
interrupt_message = true
62 changes: 50 additions & 12 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,33 +1,71 @@
name: Build and Test
name: Verify

on: push
on:
push:
branches:
- dev
- master
pull_request:

jobs:
build-and-test:
name: Build and Test
verify:
name: Full verification
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Activate pnpm
uses: pnpm/action-setup@v6
with:
version: 11.9.0

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version-file: .node-version
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile

- name: Verify validation package and example
run: pnpm verify

compatibility:
name: Node.js ${{ matrix.node-version }} compatibility
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x, 20.x, 24.x]
node-version: [24.x]

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Activate pnpm
uses: pnpm/action-setup@v6
with:
version: 11.9.0

- name: Setup Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v6
with:
node-version: ${{ matrix.node-version }}
cache: pnpm

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile

- name: Build packages
run: pnpm build

- name: Build validation package
run: npm run build
- name: Run validation tests
run: pnpm test:validation

- name: Run tests
run: npm test
- name: Run example tests
run: pnpm test:example

- name: Build example
run: npm run example
- name: Run compiled example console adapter
run: pnpm example:run
22 changes: 14 additions & 8 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,31 @@ jobs:
runs-on: ubuntu-latest

permissions:
contents: read # Read repository code
id-token: write # Generate OIDC token for npm authentication
contents: read # Read repository code
id-token: write # Generate OIDC token for npm authentication

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Activate pnpm
uses: pnpm/action-setup@v6
with:
version: 11.9.0

- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '24'
registry-url: 'https://registry.npmjs.org'
node-version-file: .node-version
cache: pnpm
registry-url: "https://registry.npmjs.org"

- name: Install dependencies
run: npm install
run: pnpm install --frozen-lockfile

- name: Build validation package
run: npm run build --workspace=@spine-event-engine/validation-ts
- name: Verify release candidate
run: pnpm verify

- name: Perform publishing to NPM registry
# The version is still a `snapshot`, so NPM requires it to be tagged accordingly.
run: npm publish --workspace=@spine-event-engine/validation-ts --tag snapshot
run: pnpm --filter @spine-event-engine/validation publish --tag snapshot --no-git-checks
8 changes: 5 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ node_modules/
# Build output
dist/
*.tsbuildinfo
packages/validation/docs/api/reference/
*.tgz

# Generated code (Protobuf)
src/generated/
Expand Down Expand Up @@ -39,14 +41,14 @@ pnpm-debug.log*
*.tmp
.cache/
.temp/
.superpowers/
.worktrees/

# Environment and local config
.env
.env.local
.env.*.local
.claude/settings.local.json

# Package manager lock files (libraries should not commit lock files)
package-lock.json
# Lock state is committed at the workspace root for reproducible builds.
yarn.lock
pnpm-lock.yaml
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
24.18.0
1 change: 1 addition & 0 deletions .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
engine-strict=true
11 changes: 11 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
node_modules
.worktrees
*.code-workspace
dist
coverage
packages/validation/docs/api/reference
packages/*/src/generated
packages/*/tests/generated
packages/*/proto/spine
packages/*/tests/proto/spine
package-lock.json
6 changes: 6 additions & 0 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"printWidth": 100,
"semi": true,
"singleQuote": false,
"trailingComma": "all"
}
Loading