Skip to content

docs: Split unified renderer_guide.md into core_sdk_spec.md and framework_adapter_spec.md for v0.9.1 and v1.0#1608

Open
jacobsimionato wants to merge 3 commits into
a2ui-project:mainfrom
jacobsimionato:fix-guide-2
Open

docs: Split unified renderer_guide.md into core_sdk_spec.md and framework_adapter_spec.md for v0.9.1 and v1.0#1608
jacobsimionato wants to merge 3 commits into
a2ui-project:mainfrom
jacobsimionato:fix-guide-2

Conversation

@jacobsimionato

Copy link
Copy Markdown
Collaborator

Description of Changes

This Pull Request splits the unified, single-file renderer_guide.md into two highly focused specifications across both version v0.9.1 and v1.0 folders:

  1. core_sdk_spec.md (Framework-Agnostic Layer / Core SDK): Contains all agnostic definitions including:
    • Event and Stateful Stream (Signals) specifications.
    • Core state models (SurfaceGroupModel, SurfaceModel, SurfaceComponentsModel, ComponentModel, DataModel with bubble/cascade pointers, and type-coercion table).
    • Reactive dynamic bindings, contexts (ComponentContext, DataContext), capability schema-tagging/reference-generation rules, and MessageProcessor.
    • Core catalog APIs (FunctionApi, FunctionImplementation, Catalog), core-side standard Basic Catalog signatures, and expression evaluation logic (formatString).
    • Unified Core SDK implementation roadmap/phases for autonomous agents.
  2. framework_adapter_spec.md (Framework-Specific / View Layer): Contains all visual, native-framework specifications including:
    • Concrete renderer interfaces (ComponentImplementation functional/stateful methods, ComponentInstance, and Surface root views).
    • Component rendering strategies (direct, pre-bound binders, and TypeScript generic binders).
    • Lifecycle rules (lazy subscription, path stability, unmount cleanup, ownership rules, structural vs data props, and context propagation).
    • Interactive validation (Checkable traits) and visual catalogue overrides.
    • Comprehensive three-column UX layout and integration testing requirements for the standard Gallery App.
    • Renderer-specific implementation roadmap/phases for autonomous agents.

Additionally, the workspace navigation instructions in .agents/skills/a2ui-sdk-design/SKILL.md have been fully updated to reference the newly split files.

Rationale

Separating the core data model and state logic from the UI rendering layer provides several key architectural advantages:

  • Headless & Server Compatibility: Empowering server-side or headless languages (where there are no UI/view adapters) to implement the Core SDK identically and safely.
  • Architectural Clarity: Defining a strict, clean, one-way dependency boundary from Framework Adapters to the Core SDK.
  • Improved Code Reuse: Allowing core schemas and state subscription layers to be shared seamlessly across multiple visual adaptors (e.g. sharing web_core binders between React and Angular renderers).
  • Maintenance & Extension: Isolating layout and styling rules from critical serialization and validation logic.

Testing/Running Instructions

Reviewers can verify the changes by doing the following:

  1. File Verification: Confirm that the files specification/v0_9_1/docs/core_sdk_spec.md, specification/v0_9_1/docs/framework_adapter_spec.md, specification/v1_0/docs/core_sdk_spec.md, and specification/v1_0/docs/framework_adapter_spec.md exist and that the old renderer_guide.md files have been correctly deleted.
  2. Prettier Verification: Run Prettier formatting to ensure syntax and structure are aligned:
    ./scripts/fix_format.sh
  3. Reference Verification: Inspect .agents/skills/a2ui-sdk-design/SKILL.md to confirm the navigation points correctly to the split specs.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Code Review

This pull request introduces a major restructuring of the A2UI documentation by splitting the architecture into a 'Core SDK Specification' and a 'Framework Adapter Specification'. It updates the documentation to reflect these changes, including updated agent implementation guides and cross-references. The review comments identified several broken path references in the documentation that pointed to the wrong version directory (v0_9 instead of v0_9_1). These have been noted for correction.

- `specification/v0_9/json/server_to_client.json` (message envelopes)
- `specification/v0_9/json/catalogs/minimal/minimal_catalog.json` (your initial target)
- `specification/v0_9/docs/basic_catalog_implementation_guide.md` (for rendering and spacing rules for when you get to the basic catalog)
- `specification/v0_9/docs/basic_catalog_implementation_guide.md` (for functional specs and spacing rules for when you get to the basic catalog)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The path reference uses v0_9 instead of v0_9_1. Since this file is located under the specification/v0_9_1/ directory, all references to the specification paths in this section (including lines 517–520) should be updated to use v0_9_1 to ensure consistency and prevent broken links.

Suggested change
- `specification/v0_9/docs/basic_catalog_implementation_guide.md` (for functional specs and spacing rules for when you get to the basic catalog)
- specification/v0_9_1/docs/basic_catalog_implementation_guide.md (for functional specs and spacing rules for when you get to the basic catalog)

Thoroughly review:

- [A2UI Core SDK Specification](core_sdk_spec.md) (for state and message structures).
- `specification/v0_9/docs/basic_catalog_implementation_guide.md` (for rendering, typography, alignment, and spacing rules).

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The path reference uses v0_9 instead of v0_9_1. Since this specification is for version v0.9.1 and resides in the specification/v0_9_1/ directory, the path should be updated to point to v0_9_1.

Suggested change
- `specification/v0_9/docs/basic_catalog_implementation_guide.md` (for rendering, typography, alignment, and spacing rules).
- specification/v0_9_1/docs/basic_catalog_implementation_guide.md (for rendering, typography, alignment, and spacing rules).


Build the Gallery App following the requirements in **Section 7**.

- Load JSON samples from `specification/v0_9/json/catalogs/minimal/examples/`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The path reference uses v0_9 instead of v0_9_1. Update the path to use v0_9_1 to match the correct directory structure for this version.

Suggested change
- Load JSON samples from `specification/v0_9/json/catalogs/minimal/examples/`.
- Load JSON samples from specification/v0_9_1/json/catalogs/minimal/examples/.


- **Framework Library**: Implement all remaining UI widgets and traits (such as `Checkable`).
- **Tests**: Formulate and run comprehensive unit and integration test cases to verify static rendering, layout alignment, two-way bindings, and scoped actions.
- Update the Gallery App to load samples from `specification/v0_9/json/catalogs/basic/examples/`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The path reference uses v0_9 instead of v0_9_1. Update the path to use v0_9_1 to match the correct directory structure for this version.

Suggested change
- Update the Gallery App to load samples from `specification/v0_9/json/catalogs/basic/examples/`.
- Update the Gallery App to load samples from specification/v0_9_1/json/catalogs/basic/examples/.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant