Skip to content

docs: add composable agents design page - #11

Merged
equationalapplications merged 17 commits into
mainfrom
docs/composable-agents-spec-revisions
Aug 11, 2026
Merged

docs: add composable agents design page#11
equationalapplications merged 17 commits into
mainfrom
docs/composable-agents-spec-revisions

Conversation

@equationalapplications

@equationalapplications equationalapplications commented Aug 11, 2026

Copy link
Copy Markdown
Owner

Summary

Spec: docs/superpowers/specs/2026-08-11-composable-agents-design.md

  • Add docs/12-composable-agents.md: names this tutorial's scheduled Lambda as a lightweight composable cloud agent, then climbs a six-rung ladder from it (to-do list, delegation, intent queue, follow-up tasks/EC2 escape hatch, tiered memory) toward hierarchical orchestration. Conceptual only — no code, tables, or infrastructure changes.
  • Add the new doc to the README doc-index table.

Test plan

  • All relative links in the new doc resolve (01-architecture.md, 02-rehydration.md, 05-from-tutorial-to-prod.md, 10-concurrency.md)
  • 10-concurrency.md#high-contention-the-single-writer-queue anchor verified against the actual heading slug
  • External core-llm-wiki README fetched and every cited API name (WikiMemory, entityId, tierWeights, ontology modes, etc.) verified against it
  • docs/12-composable-agents.md cross-checked against src/, infra/stack.ts, and sibling docs for factual accuracy (EventBridge input, Bedrock call count, reserved concurrency, /tmp semantics, table count)
  • Confirmed no changes outside docs/ and README.md
  • Two-stage subagent review (spec compliance, then quality) passed

claude added 14 commits August 11, 2026 16:03
Design for a new docs/12-composable-agents.md page reframing the
tutorial's Lambda as one instance of a hierarchical, heartbeat-driven,
delegate-and-message-back agent pattern. Conceptual only — no code.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Rung 6 maps rung 4's "central memory" onto core-llm-wiki's entityId
namespacing, tierWeights, per-entity ontology, and scoped access as an
illustrative (non-adopted) extension.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Six fixes from spec review, all clarifications rather than scope changes;
Status stays "Approved — ready for writing-plans".

- Correct section count: six sections -> eight (intro, six rungs, closing).
- Rung 4 now explicitly introduces the term "central memory", which rung 6
  had been calling back to without it ever being named.
- Rewrite the rung 1 statelessness bullet: /tmp is not simply disposable.
  01-architecture.md:10 leans on warm-container reuse for the status reader
  and 02-rehydration.md:91 notes it survives until redeploy, so the claim is
  that no *durable* state lives there, not that it vanishes.
- Reword the "no new terminology" non-goal to "no *parallel* vocabulary",
  since the ladder does legitimately introduce heartbeat/rung/to-do list/
  sub-agent/central memory.
- Expand Placement: index table only (leave prose links alone), row format,
  and that the 12- row goes above the unnumbered bedrock-model-comparison row.
- Add a Length and format section (120-180 lines, diagrams sparingly).

Also add a "verify before drafting" note to rung 6: it cites a lot of
external core-llm-wiki API surface and links a repo name that differs from
the package name, so that README needs fetching before the doc is written.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 47 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: d42c3fbf-0e21-4ed5-ac21-144bcb14835d

📥 Commits

Reviewing files that changed from the base of the PR and between 4571c03 and 0ec1f9d.

📒 Files selected for processing (3)
  • docs/12-composable-agents.md
  • docs/superpowers/plans/2026-08-11-composable-agents-doc.md
  • docs/superpowers/specs/2026-08-11-composable-agents-design.md
📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Added a new guide explaining composable cloud agents and a six-stage progression from scheduled fetches to advanced shared memory.
    • Clarified which capabilities are currently available and which stages are conceptual.
    • Added links to related architecture, concurrency, production, and memory documentation.
    • Updated the README documentation index to include the new guide.
    • Added supporting implementation and design documentation.

Walkthrough

The change adds a composable-agents documentation page, its design specification and implementation plan, and a README index entry. The page documents the existing fetch Lambda as rung 1 and describes rungs 2–6 as conceptual.

Changes

Composable agents documentation

Layer / File(s) Summary
Documentation design contract
docs/superpowers/specs/2026-08-11-composable-agents-design.md
Defines the page structure, six-rung progression, scope, links, and validation requirements.
Documentation implementation plan
docs/superpowers/plans/2026-08-11-composable-agents-doc.md
Specifies the writing tasks, README update, verification steps, and documentation-only boundaries.
Tutorial page and README index
docs/12-composable-agents.md, README.md
Adds the tutorial and links it from the README documentation table. The tutorial documents the fetch Lambda and conceptual rungs 2–6.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Poem

A rabbit reads the agent trail,
From fetch tick light to memory scale.
Six rungs rise in documented flight,
With durable state to guide the night.
The README points the way—
Hop, review, and learn today!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly identifies the main change: adding a composable agents documentation page.
Description check ✅ Passed The description accurately summarizes the documentation changes, conceptual scope, verification steps, and README update.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🧹 Nitpick comments (1)
docs/superpowers/specs/2026-08-11-composable-agents-design.md (1)

190-198: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Replace the pre-drafting verification block with its completed result.

The specification is marked Implemented, and the implementation plan records verification on August 11, 2026. Leaving “Verify before drafting” and “unconfirmed” makes the specification appear unfinished. Record the completed verification and the corrected entity-ID semantics, or remove this block.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/superpowers/specs/2026-08-11-composable-agents-design.md` around lines
190 - 198, Replace the “Verify before drafting” block with a completed
verification note reflecting the August 11, 2026 verification. Confirm the
external API names and repository/package URL, and document the corrected
entity-ID semantics; otherwise remove the block so the Implemented specification
no longer presents these details as unconfirmed.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/12-composable-agents.md`:
- Around line 3-6: Define statelessness consistently as independence from
durable in-memory state rather than literal absence of memory state. Update
docs/12-composable-agents.md lines 3-6,
docs/superpowers/specs/2026-08-11-composable-agents-design.md lines 71-74, and
docs/superpowers/plans/2026-08-11-composable-agents-doc.md lines 92-95 to
replace the absolute wording and acknowledge reusable warm /tmp contents and
cached status-reader handles.
- Around line 121-125: Update the follow-up task design to use the Rung 4 intent
contract: in docs/12-composable-agents.md lines 121-125, replace the sub-agent’s
direct to-do-list write with an intent request; apply the same
coordinator-created-item contract in
docs/superpowers/specs/2026-08-11-composable-agents-design.md lines 145-148 and
update the corresponding implementation steps in
docs/superpowers/plans/2026-08-11-composable-agents-doc.md lines 279-283.
- Around line 38-45: Narrow the composability claims across the three documented
sites: in docs/12-composable-agents.md lines 38-45, replace the “any number”
guarantee with the storage-only guarantee and document possible duplicate
Bedrock/Discord side effects plus queue/rebase requirements; in
docs/superpowers/specs/2026-08-11-composable-agents-design.md lines 93-97,
describe the conditional write as S3 storage protection rather than general
multi-agent coordination; in
docs/superpowers/plans/2026-08-11-composable-agents-doc.md lines 29-33, state
that reservedConcurrentExecutions: 1 is a tutorial default scoped to a single
Lambda function.

In `@docs/superpowers/plans/2026-08-11-composable-agents-doc.md`:
- Around line 54-59: Resolve the contradiction in the “Not touched” rule and
Task 6: either explicitly exempt this approved specification from the
prohibition on rewriting files under docs/superpowers/specs/, or remove Task 6’s
instruction to update the specification status. Keep the file-scope guidance
consistent with the selected approach.

In `@docs/superpowers/specs/2026-08-11-composable-agents-design.md`:
- Around line 164-172: Update the “Tiered memory” description to identify
tier_wisdom, tier_fact, and tier_working as ordinary entity IDs/namespaces whose
names represent tiers, with tierWeights assigning their weights; remove wording
that presents them as built-in tier names. Preserve the surrounding explanation
of durable versus working memory.
- Around line 143-145: Update the Rung 5 section heading description to remove
the claim that it closes the ladder, and instead describe handling work that
exceeds a single invocation. Preserve the surrounding explanation and
acknowledge that Rung 6 follows immediately.

---

Nitpick comments:
In `@docs/superpowers/specs/2026-08-11-composable-agents-design.md`:
- Around line 190-198: Replace the “Verify before drafting” block with a
completed verification note reflecting the August 11, 2026 verification. Confirm
the external API names and repository/package URL, and document the corrected
entity-ID semantics; otherwise remove the block so the Implemented specification
no longer presents these details as unconfirmed.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dd4020a4-b425-49c6-aab9-dbf3f39358df

📥 Commits

Reviewing files that changed from the base of the PR and between ab0a66f and 4571c03.

📒 Files selected for processing (4)
  • README.md
  • docs/12-composable-agents.md
  • docs/superpowers/plans/2026-08-11-composable-agents-doc.md
  • docs/superpowers/specs/2026-08-11-composable-agents-design.md

Comment thread docs/12-composable-agents.md Outdated
Comment thread docs/12-composable-agents.md Outdated
Comment thread docs/12-composable-agents.md Outdated
Comment thread docs/superpowers/plans/2026-08-11-composable-agents-doc.md Outdated
Comment thread docs/superpowers/specs/2026-08-11-composable-agents-design.md Outdated
Comment thread docs/superpowers/specs/2026-08-11-composable-agents-design.md Outdated
Six actionable findings plus one nitpick, all docs-only:

- Statelessness: opener now reads "carries no state in memory that has to
  outlive an invocation" instead of the absolute "no state is held in memory
  between runs"; aligned across docs/12, the spec, and the plan.
- Composability: "any number of these can exist" replaced with the storage-
  only guarantee. Documented that the conditional write does not serialize
  separate Lambda functions or make pre-publish Bedrock/Discord side effects
  idempotent, and that reservedConcurrentExecutions: 1 is the tutorial
  default, function-scoped and overridable via RESERVED_CONCURRENCY.
- Rung 5 follow-ups: sub-agent now emits an intent and the coordinator
  applies it to create the to-do item, matching Rung 4's read-only
  sub-agent contract.
- Spec Rung 5: "Closes the ladder" replaced with "handles work that exceeds
  a single invocation; rung 6 follows immediately."
- Tiered memory: tier_wisdom / tier_fact / tier_working reframed as ordinary
  entity ids with naming-convention tiers; tierWeights described as a
  per-entity multiplier.
- Plan "Not touched" rule: explicit exception added for the one-line Status
  flip this plan makes in Task 6.
- Spec "Verify before drafting" block: replaced with a 2026-08-11
  verification record so an Implemented spec no longer reads as unconfirmed.

Co-Authored-By: Claude <noreply@anthropic.com>
@equationalapplications

Copy link
Copy Markdown
Owner Author

/fix-pr follow-up

Commit: bde5419 (3 files, +75/-58, docs-only)

Review resolution

  • Statelessness definition (3 sites)Fixed. Opener in docs/12-composable-agents.md, the spec's intro description, and the plan's drafted source text now read "carries no state in memory that has to outlive an invocation" instead of "no state is held in memory between runs". The detailed /tmp and cached-handle nuance was already at docs/12-composable-agents.md:30-36; the opener no longer contradicts it.
  • Composability / conditional-write narrowing (3 sites)Fixed. Replaced "any number of these can exist" with the storage-only guarantee. Documented that the conditional write does not serialize separate Lambda functions or make pre-publish Bedrock/Discord side effects idempotent, and that reservedConcurrentExecutions: 1 is the tutorial default, function-scoped and overridable via RESERVED_CONCURRENCY. Verified against infra/stack.ts:94.
  • Rung 5 follow-up tasks (3 sites)Fixed. Sub-agent now emits an intent and the coordinator applies it to create the to-do item, matching Rung 4's read-only sub-agent contract.
  • Rung 5 "Closes the ladder"Fixed. Replaced with "Handles work that exceeds a single invocation; rung 6 follows immediately." (Spec only.)
  • Tiered memory wordingFixed. tier_wisdom / tier_fact / tier_working reframed as ordinary entity ids with naming-convention tiers; tierWeights described as a per-entity multiplier. Verified against https://raw.githubusercontent.com/equationalapplications/expo-llm-wiki/main/packages/core/README.md (lines 214-239, 721-726).
  • Plan "Not touched" contradictionFixed. Added explicit exception for the one-line Status flip this plan makes in Task 6.
  • Nitpick: pre-drafting verification blockFixed. Replaced with a 2026-08-11 verification record so the Implemented spec no longer reads as unconfirmed.

Verification

  • git diff --stat main...HEAD -- src infra tests package.json package-lock.json Dockerfile — empty (docs-only change)
  • grep -c "Not implemented in this repo" docs/12-composable-agents.md5 (one per rung 2-6)
  • Link check on docs/12-composable-agents.md01-architecture.md, 02-rehydration.md, 05-from-tutorial-to-prod.md, 10-concurrency.md all resolve
  • wc -l docs/12-composable-agents.md188 lines (target band 120-180; +8 over due to substantive review corrections, accepted as a fair trade for accuracy)

No typecheck / lint / tests apply — this PR is docs-only.

claude added 2 commits August 11, 2026 16:49
…ifics

Per a follow-up note that the doc is conceptual, not about a Discord bot.
My new "Why composable" paragraph in docs/12 and the matching spec text
spoke in terms of "Bedrock calls and Discord posts"; replaced with general
language about side-effecting operations. Pre-existing rung 1 paragraph
still mentions Bedrock/Discord as concrete examples of the fetch tick —
left in place; will check with the author on whether those should be
generalized too.

Co-Authored-By: Claude <noreply@anthropic.com>
…example

Per follow-up that the doc is conceptual, not about a Discord bot. Rung 1's
"Spin up, work, go away" paragraph and the spec's matching description
referred to "call Bedrock twice, post to Discord" specifically; replaced with
"do the agent's scoped work". The doc and spec no longer name a specific
external service anywhere; the conceptual pattern stands on its own.

Co-Authored-By: Claude <noreply@anthropic.com>
@equationalapplications

Copy link
Copy Markdown
Owner Author

/fix-pr follow-up — generalization

Commit: 0ec1f9d (also c0856a2 immediately before it)

The doc is conceptual, not about a Discord bot — applied two more commits to remove the last concrete-service references:

  • docs/12-composable-agents.md rung 1: "call Bedrock twice, post to Discord" → "do the agent's scoped work" in the "Spin up, work, go away" paragraph.
  • docs/superpowers/specs/2026-08-11-composable-agents-design.md rung 1 description: same wording change.
  • docs/12-composable-agents.md and spec "Why composable" paragraph (Thread 2 fix): replaced "pre-publish Bedrock calls and Discord posts" with "any side-effecting operations the agent performs before the write".

grep -E 'Discord|Bedrock' docs/12-composable-agents.md docs/superpowers/specs/2026-08-11-composable-agents-design.md now returns nothing. The doc and spec no longer name a specific external service anywhere.

Co-Authored-By: Claude noreply@anthropic.com

@equationalapplications
equationalapplications merged commit 71b0b97 into main Aug 11, 2026
1 check passed
@equationalapplications
equationalapplications deleted the docs/composable-agents-spec-revisions branch August 11, 2026 20:51
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.

2 participants