Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
718fb33
chore: split ignite into workspace packages
0xjcf Mar 21, 2026
d6d5101
chore: stabilize workspace tooling
0xjcf Mar 21, 2026
456799c
feat: shift igniteCore to effects-driven runtime
0xjcf Mar 21, 2026
7544dd8
docs: add effects migration guidance
0xjcf Mar 21, 2026
189d85f
feat: add ignite agent schema runtime
0xjcf Mar 21, 2026
9754c57
feat: add ignite testing DSL
0xjcf Mar 21, 2026
08e840d
chore: ignore tsbuildinfo artifacts
0xjcf Mar 21, 2026
2b78fa8
feat: formalize deterministic effects semantics
0xjcf Mar 21, 2026
68d1cf9
feat: finalize command-only ignite API
0xjcf Mar 21, 2026
570998d
feat: add projected view runtime APIs
0xjcf Mar 23, 2026
b159c39
refactor: introduce ignite-adapters package
0xjcf Mar 23, 2026
391aed9
refactor: move xstate support into ignite-adapters
0xjcf Mar 23, 2026
45479cf
refactor: share projection assembly across element factories
0xjcf Mar 23, 2026
0902510
chore: clean package surfaces and source artifacts
0xjcf Mar 23, 2026
9a040da
chore: track fas task artifacts
0xjcf Mar 23, 2026
0f8db2a
fix: restore root lint toolchain in ci
0xjcf Mar 23, 2026
0c0129f
refactor: remove ignite-store and align docs
0xjcf Mar 23, 2026
4477744
docs: reposition ignite around platform-native UI
0xjcf Apr 18, 2026
b24fa63
chore(fas): normalize workflow surfaces for codex 6-agent execution
0xjcf Apr 19, 2026
7a23f62
refactor: align ignite runtime surface with adr-003
0xjcf Apr 21, 2026
c6421e6
docs: document adr-003 runtime contract
0xjcf Apr 21, 2026
973fb80
chore: close ignite-element fas tasks
0xjcf Apr 21, 2026
33852ff
chore(monorepo): commit ADR boundary alignment
0xjcf Apr 23, 2026
6c2128a
feat: implement ignite element actor-web first-class adapter
0xjcf Apr 27, 2026
24f2614
test: add coverage for ignite element actor-web adapter
0xjcf Apr 27, 2026
cf5e022
chore: mark actor-web adapter ready for review
0xjcf Apr 27, 2026
3b45ea6
feat: implement ignite element actor-web first-class adapter
0xjcf Apr 30, 2026
3142583
test: add coverage for actor-web host source factories
0xjcf Apr 30, 2026
6ff838a
chore: clean up fas agent instructions
0xjcf Apr 30, 2026
b046721
chore(fas): curate cross-repo planning maps
0xjcf Apr 30, 2026
4eea7db
chore(fas): clean codex workflow state
0xjcf May 12, 2026
6c87d81
feat: unify effects signature, post-render effects, JSX positional pa…
May 21, 2026
e121088
ci: use package manager pnpm version
0xjcf May 21, 2026
7d6219d
chore: format v3 branch changes
0xjcf May 21, 2026
ac4f681
feat(ignite-element): auto-observe attributes from single-arg setX co…
May 22, 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
73 changes: 73 additions & 0 deletions .fas-config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
{
"fasRoot": "../FAS",
"projectName": "ignite-element",
"projectType": "node",
"domainKnowledgeMapFile": "fas.domain-map.json",
"branchPrefix": "fas/",
"runtimeImplementerCommand": "",
"runtimeGitHubEnabled": false,
"runtimeAllowPush": false,
"lintCommand": "npm run lint",
"formatCheckCommand": "pnpm exec biome format .",
"formatFixCommand": "npm run format",
"typecheckCommand": "npm run typecheck",
"testCommand": "npm run test",
"replayCommand": "",
"verifyScriptMode": "platform",
"screenshotArtifactDir": ".fas/artifacts/screenshots",
"taskStateDir": ".fas/state",
"queueFile": ".fas/queue/tasks.json",
"boundaryPolicyFile": "",
"architectureRulesFile": ".fas/architecture-rules.json",
"systemDocsDir": "docs",
"monitorPacks": ["ci-regressions", "dependency-drift", "quality-checks"],
"behaviorBoundaries": {
"functionalCore": [
"packages/ignite-core/src/",
"packages/ignite-element/src/RenderArgs.ts",
"packages/ignite-element/src/types/agent.ts",
"packages/ignite-element/src/types/schema.ts"
],
"shell": [
"packages/ignite-renderer/src/",
"packages/ignite-element/src/adapters/",
"packages/ignite-element/src/runtime/",
"packages/ignite-element/src/internal/",
"packages/ignite-element/src/config/",
"packages/ignite-element/src/events.ts",
"packages/ignite-element/src/IgniteAdapter.ts",
"packages/ignite-element/src/plugins/",
"packages/ignite-element/src/renderers/",
"packages/ignite-element/src/utils/",
"packages/ignite-element/src/jsx/",
"packages/ignite-element/src/igniteCore/",
"packages/ignite-element/src/IgniteCore.ts",
"packages/ignite-element/src/IgniteElement.ts",
"packages/ignite-element/src/IgniteElementFactory.ts",
"packages/ignite-element/src/createComponentFactory.ts",
"packages/ignite-element/src/createProjectionFactory.ts",
"packages/ignite-element/src/index.ts",
"packages/ignite-element/src/xstate.ts",
"packages/ignite-element/src/redux.ts",
"packages/ignite-element/src/mobx.ts",
"packages/ignite-element/src/testing.ts"
],
"adapters": ["packages/ignite-adapters/src/"],
"lifecycle": [],
"scope": "changed-only",
"baseBranch": "main"
},
Comment on lines +24 to +59

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "Validating behavior boundary paths from .fas-config.json"
jq -r '
  .behaviorBoundaries.functionalCore[],
  .behaviorBoundaries.shell[],
  .behaviorBoundaries.adapters[]
' .fas-config.json | while IFS= read -r p; do
  if [ -e "$p" ]; then
    echo "OK      $p"
  else
    echo "MISSING $p"
  fi
done

Repository: 0xjcf/ignite-element

Length of output: 1309


Remove packages/ignite-store/src/ from the shell boundary list—this path does not exist.

The validation found that packages/ignite-store/src/ is missing from the repository. This entry in the shell boundaries (line 34) will cause FAS enforcement to silently skip coverage for a configured boundary, weakening drift detection without obvious failure. Either remove this path from the configuration or verify whether it was restructured to a different location during the monorepo reorganization.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.fas-config.json around lines 23 - 57, The shell boundary in
behaviorBoundaries contains a non-existent path "packages/ignite-store/src/";
remove that entry (or replace it with the correct new path if the store was
moved) from the "shell" array in .fas-config.json so the "behaviorBoundaries" ->
"shell" list no longer references "packages/ignite-store/src/" (look for the
"behaviorBoundaries" object and the "shell" array to locate the entry).

"autonomyPolicy": {
"mode": "independent-only",
"runtimeMode": "active",
"allowedTaskClasses": ["independent", "dependent", "monitor"],
"maxActiveDraftPrs": 5,
"maxStackDepth": 3,
"forbiddenPaths": [],
"forbiddenModules": [],
"maxEstimatedToolCalls": null,
"maxEstimatedApiCostUsd": null
},
"behaviorBoundaryProfile": "errors-as-data",
"architectureProfile": "layered"
}
162 changes: 162 additions & 0 deletions .fas/TASKS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# Task Tracker

## Active Tasks

No active tasks.

## Completed Tasks

### Task: refactor igniteCore so commands express intent, add effects-based event emission, preserve deprecated emit-in-commands compatibility, and prepare agent-readable runtime hooks

- Title: refactor igniteCore so commands express intent, add effects-based event emission, preserve deprecated emit-in-commands compatibility, and prepare agent-readable runtime hooks
- Mode: 4-agent
- Status: done
- Owner: reviewer

### Task: finish igniteCore migration path for effects-based events

- Title: finish igniteCore migration path for effects-based events
- Mode: 4-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/finish-ignitecore-migration-path-for-effects-based-events.md

### Task: add igniteCore agent schema generation

- Title: add igniteCore agent schema generation
- Mode: 4-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/add-ignitecore-agent-schema-generation.md

### Task: add effects-aligned testing DSL for ignite components

- Title: add effects-aligned testing DSL for ignite components
- Mode: 4-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/add-effects-aligned-testing-dsl-for-ignite-components.md

### Task: formalize deterministic replay semantics for ignite effects

- Title: formalize deterministic replay semantics for ignite effects
- Mode: 4-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/formalize-deterministic-replay-semantics-for-ignite-effects.md

### Task: remove deprecated emit from commands and finalize command-only API

- Title: remove deprecated emit from commands and finalize command-only API
- Mode: 4-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/remove-deprecated-emit-from-commands-and-finalize-command-on.md

### Task: rename ignite-store to ignite-adapters and normalize adapter package boundaries

- Title: rename ignite-store to ignite-adapters and normalize adapter package boundaries
- Mode: single-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/rename-ignite-store-to-ignite-adapters-and-normalize-adapter.md

### Task: move xstate integration out of ignite-core and make ignite-core adapter-agnostic

- Title: move xstate integration out of ignite-core and make ignite-core adapter-agnostic
- Mode: single-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/move-xstate-integration-out-of-ignite-core-and-make-ignite-c.md

### Task: collapse duplicate projection and component factory assembly into one shared path

- Title: collapse duplicate projection and component factory assembly into one shared path
- Mode: single-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/collapse-duplicate-projection-and-component-factory-assembly.md

### Task: clean package surfaces, remove generated source artifacts, and document the public package contract

- Title: clean package surfaces, remove generated source artifacts, and document the public package contract
- Mode: single-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/clean-package-surfaces-remove-generated-source-artifacts-and.md

### Task: investigate ignite inspector runtime requirements, schema metadata gaps, and effects ergonomics follow-up tasks

- Title: investigate ignite inspector runtime requirements, schema metadata gaps, and effects ergonomics follow-up tasks
- Mode: 6-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/investigate-ignite-inspector-runtime-requirements-schema-met.md

### Task: shared architecture ADR and model alignment

- Title: shared architecture ADR and model alignment
- Mode: 6-agent
- Status: done
- Owner: implementer
- Brief: .fas/tasks/shared-architecture-adr-and-model-alignment.md
- Verification lane: fast
- Policy sensitivity: standard
- Blast radius: cross-cutting
- Artifacts: brief=.fas/tasks/shared-architecture-adr-and-model-alignment.md; planning=.fas/state/planning.json; taskPacket=.fas/state/task-packet.json; commitPlan=.fas/state/commit-plan.json; verification=.fas/state/verification/latest.json; review=.fas/state/review-summary.md; workflow=.fas/state/workflows

### Task: align ignite-element package boundaries with ADR-003

- Title: align ignite-element package boundaries with ADR-003
- Mode: 6-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/align-ignite-element-package-boundaries-with-adr-003.md
- Verification lane: fast
- Policy sensitivity: standard
- Blast radius: cross-cutting
- Artifacts: brief=.fas/tasks/align-ignite-element-package-boundaries-with-adr-003.md; planning=.fas/state/planning.json; taskPacket=.fas/state/task-packet.json; commitPlan=.fas/state/commit-plan.json; verification=.fas/state/verification/latest.json; review=.fas/state/review-summary.md; workflow=.fas/state/workflows

### Task: add command metadata helpers for enriched agent runtime schemas

- Title: add command metadata helpers for enriched agent runtime schemas
- Mode: 6-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/add-command-metadata-helpers-for-enriched-agent-runtime-sche.md
- Verification lane: fast
- Policy sensitivity: standard
- Blast radius: cross-cutting
- Artifacts: brief=.fas/tasks/add-command-metadata-helpers-for-enriched-agent-runtime-sche.md; planning=.fas/state/planning.json; taskPacket=.fas/state/task-packet.json; commitPlan=.fas/state/commit-plan.json; verification=.fas/state/verification/latest.json; review=.fas/state/boundary-review-findings.md; workflow=.fas/state/workflows

### Task: add story recorder API with behavior traces and lifecycle events

- Title: add story recorder API with behavior traces and lifecycle events
- Mode: single-agent
- Status: done
- Owner: reviewer
- Brief: .fas/tasks/add-story-recorder-api-with-behavior-traces-and-lifecycle-ev.md
- Verification lane: fast
- Policy sensitivity: standard
- Blast radius: cross-cutting
- Artifacts: brief=.fas/tasks/add-story-recorder-api-with-behavior-traces-and-lifecycle-ev.md; planning=.fas/state/planning.json; taskPacket=.fas/state/task-packet.json; commitPlan=.fas/state/commit-plan.json; verification=.fas/state/verification/latest.json; review=.fas/state/boundary-review-findings.md; workflow=.fas/state/workflows

### Task: Ignite Element Actor-Web first-class adapter

- Title: Ignite Element Actor-Web first-class adapter
- Mode: single-agent
- Status: review
- Owner: reviewer
- Verification lane: fast
- Policy sensitivity: standard
- Blast radius: cross-cutting
- Artifacts: planning=.fas/state/planning.json; taskPacket=.fas/state/task-packet.json; commitPlan=.fas/state/commit-plan.json; verification=.fas/state/verification/latest.json; review=.fas/state/boundary-review-findings.md; workflow=.fas/state/workflows
## Template

### Task: <short task title>

- Title: <short task title>
- Mode: <single-agent | 4-agent | 6-agent>
- Status: <backlog | debug | code-review | planning | commit-planning | implementing | validation | closeout | verifying | review | architecture-review | blocked | done>
- Owner: <role>
- Brief: .fas/tasks/<slug>.md (optional — omit if no brief exists)
54 changes: 54 additions & 0 deletions .fas/WORKFLOW.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Development Workflow

## Pipeline Summary

| Stage | Script | Status | Owner | Description |
| ----- | ------ | ------ | ----- | ----------- |
| memory review | (inside planner) | — | — | Read `.fas/memory/*` for durable constraints and past incidents |
| repo index search | `index-repo.sh` | — | — | Build structural file map, symbols, and dependency graph |
| semantic search | `semantic-index.sh` / `semantic-query.sh` | — | — | Chunk codebase and query by meaning |
| behavior guardian | `architect-check.sh` | — | — | Validate plan against architecture boundaries |
| planner | `planner.sh` | `planning` → `commit-planning` | `planner` | Generate plan with mode, phase, commit plan, and constraints |
| commit plan | `plan-commits.sh` | `commit-planning` → `implementing` | `implementer` | Break plan into ordered incremental commit steps |
| implementation | `execute-commits.sh` | `implementing` → `verifying` | `verifier` | Execute each commit step with per-step verification |
| debug | (within commit plan) | `debug` | `investigator` | Investigate root cause, gather traces, record incident, create follow-up task |
| code-review | (within commit plan) | `code-review` | `reviewer` | Review external PR for correctness, risk, and test coverage; produce recommendation |
| validation | (within commit plan) | `validation` | `validator` | Capture evidence, screenshots, and QA results |
| closeout | (within commit plan) | `closeout` | `documenter` | Update docs, record residual issues, finalize tracking |
| verification | `verify.sh` | — | — | Run non-mutating lint, format checks, typecheck, tests, architecture drift, and boundary checks |
| review | `reviewer.sh` | `verifying` → `review` | `reviewer` | Generate review summary with compliance checklist |
| draft PR | `create-pr.sh` | `review` → `done` | `reviewer` | Create draft PR for human review |

Notes:

- `verify.sh` does not trigger a status transition. It is a utility called per-step during implementation and standalone during the verification stage.
- `verify.sh` must never rewrite files. Use `fix.sh` or `fas fix` for explicit autofix flows.
- Debug, code-review, validation, and closeout are handled within the commit plan when the task `phase` is set to `debug`, `code-review`, `validation`, or `closeout`. They do not have dedicated scripts.
- Status transitions are performed by `fas_transition_task` which updates both `current-task.json` and `TASKS.md` atomically.
- In Codex interactive runs, use `.fas/state/codex-orchestration.json` and `.fas/state/codex-subagents-prompt.md` as the authoritative subagent recipe. Treat the task packet, planning output, and commit plan as the source of truth over generic skill defaults.

## Status vs Phase

- **`status`** tracks pipeline progress — where the task is right now (e.g., `implementing`, `verifying`, `review`, `done`).
- **`phase`** is a task-type classifier set once at creation — `debug`, `code-review`, `implementation`, `validation`, or `closeout`. It determines which commit plan template the planner generates.

## Core Rules

- Start from `TASKS.md`.
- Read `.fas/memory/*` before repo indexing.
- Use structural and semantic search before editing.
- Run Behavior Guardian checks before finalizing the plan and again during verification.
- Keep debug, code-review, validation, and closeout free of implementation changes.
- Keep screenshots under `.fas/artifacts/screenshots/` and out of Git by default.
- Continue autonomously until draft PR handoff or a hard blocker.

## Verification

Use the platform verification pipeline through `fas verify` or the local wrapper scripts generated from the platform.

## Codex 6-Agent

- Planner consultation happens in the root session before delegated execution begins.
- Follow the generated order in `.fas/state/codex-orchestration.json`.
- Only the declared code-writing role may modify source files.
- Use Codex subagents for architecture, staff-engineering, QA, SRE, and reviewer passes instead of the heavy runtime-oriented FAS subagent CLI loop unless provenance receipts are explicitly needed.
35 changes: 35 additions & 0 deletions .fas/architecture-rules.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"_comment": "Package-family import boundaries aligned to ADR-003.",
"rules": [
{
"name": "ignite-core-no-ignite-adapters",
"from": "packages/ignite-core/src",
"cannotImport": "packages/ignite-adapters/src"
},
{
"name": "ignite-core-no-ignite-renderer",
"from": "packages/ignite-core/src",
"cannotImport": "packages/ignite-renderer/src"
},
{
"name": "ignite-core-no-ignite-element",
"from": "packages/ignite-core/src",
"cannotImport": "packages/ignite-element/src"
},
{
"name": "ignite-adapters-no-ignite-element",
"from": "packages/ignite-adapters/src",
"cannotImport": "packages/ignite-element/src"
},
{
"name": "ignite-adapters-no-ignite-renderer",
"from": "packages/ignite-adapters/src",
"cannotImport": "packages/ignite-renderer/src"
},
{
"name": "ignite-renderer-no-ignite-element",
"from": "packages/ignite-renderer/src",
"cannotImport": "packages/ignite-element/src"
}
]
}
Loading
Loading