Skip to content

Structured dependencies frontmatter with status across all RFPs#64

Open
fryorcraken wants to merge 10 commits into
masterfrom
add-dependencies-section
Open

Structured dependencies frontmatter with status across all RFPs#64
fryorcraken wants to merge 10 commits into
masterfrom
add-dependencies-section

Conversation

@fryorcraken

@fryorcraken fryorcraken commented May 28, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a structured, machine-readable `dependencies` field to every RFP's frontmatter and documents the convention in `RFP-000` and `NEW_RFP.md`.

Convention

  • Frontmatter lists hard dependencies only: RFPs, Lambda Prizes, platform features, or R&D items (tracked in journeys.logos.co) that the RFP cannot be contracted or delivered without.
  • Each entry is `{id, status, reason}`. `status` mirrors the dependency's published state: `open` = still blocking, `closed` = delivered or awarded. Entries are kept after delivery; only the status flips.
  • Every frontmatter entry has a matching subsection in the body's Platform Dependencies section.
  • Soft dependencies (stubbable, nice-to-have, or better-once-available) are described in the body only.

Statuses reconciled against the sources

  • lambda-prize: LP-0012, LP-0014, LP-0015 are CLOSED; LP-0013 (token transfer authorities) is OPEN and added to every token-custodian RFP.
  • logos-execution-zone main: the on-chain clock is delivered (`programs/clock`, sequencer-updated timestamp accounts) and the timelock pattern is supported (`time_locked_transfer` example). RFP-003/013/016/017 updated accordingly; RFP-003 is now blocked only on LP-0013.
  • RFP-001 and RFP-002 are closed (candidate picked); the libraries are in development, so dependents keep them with `status: closed` and body notes.

TWAP architecture (RFP-004 / RFP-019)

RFP-019 delivers the TWAP accumulator component as an integrable artefact; the DEX hooks it into every state-changing pool operation (new RFP-004 F.10, with an expose-the-integration-point fallback). The two RFPs are mutual soft dependencies: the oracle acceptance-tests against a reference pool, and live prices need both. RFP-004 gains RFP-001 via this surface (the component's per-pool `MAX_TICK_DELTA` clamp and cardinality registration are admin-gated).

Dependency matrix (frontmatter)

RFP open closed
003 Atomic Swaps LP-0013 LEZ-timelock
004 DEX LP-0013 RFP-001, LP-0015, LP-0014, LP-0012
008 Lending LP-0013, RFP-020 LP-0015, LP-0012
012 Curated Vaults RFP-008, LP-0013
013 Stablecoin RFP-020, LP-0013 RFP-001, RFP-002, LP-0015, LEZ-clock
014 Liquidation RFP-013, RFP-020, LP-0013 RFP-001, RFP-002, LP-0015
015 Bonding Curve LP-0013 RFP-001, LP-0015
016 LBP LP-0013 RFP-001, RFP-002, LP-0015, LEZ-clock
017 Vesting LP-0013 LP-0015, LEZ-clock
019 TWAP Oracle RFP-001
020 RedStone RFP-001

Also fixes stale links (RFP-001/002 `-poc.md` filenames, removed advanced-lending-features file) and runs mdformat across the repo (final commit, formatting only).

🤖 Generated with Claude Code

@fryorcraken

Copy link
Copy Markdown
Collaborator Author

Dropped the flywheels.logos.co / downstream-tooling sentence in NEW_RFP.md so the doc stands on its own. Pushed as 10ec7fe.

@fryorcraken fryorcraken requested a review from mart1n-xyz May 28, 2026 01:49

@mart1n-xyz mart1n-xyz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Many dependencies missing, some LPs referenced already available.

status: open
category: Applications & Integrations
dependencies:
- id: LP-0014

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LP-0014 has been delivered by r4bbit

dependencies: See Platform Dependencies section
category: Applications & Integrations
dependencies:
- id: LP-0015

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LP-0015 already delivered by LEZ team

- id: RFP-008
reason: This RFP extends the lending protocol delivered by RFP-008 and
cannot proceed until that base layer is live.
- id: LP-0015

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LP-0015 already delivered by LEZ team

- id: RFP-002
reason: Provides the standardised freeze authority used to pause
protocol operations.
- id: LP-0015

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LP-0015 already delivered by LEZ team

- id: RFP-013
reason: Reflexive Stablecoin Protocol (or equivalent CDP host) provides
the positions that this engine liquidates.
- id: LP-0015

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

LP-0015 already delivered by LEZ team

Comment thread RFPs/RFP-003-atomic-swaps.md Outdated
funding: $TBD
status: open
category: Applications & Integrations
dependencies: []

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Hard blocker (no LP ID, just platform feature): LEZ timelock support

funding: $XXXXX
status: open
category: Applications & Integrations
dependencies:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

RFP-001 (Admin Authority) — F7: "The pool creator selects a fee tier at pool creation time... The fee tier is immutable per pool." / Admin needs to configure params

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Left RFP-004 with no admin dependency. The fee tiers are an enumerated set (0.01% / 0.05% / 0.3% / 1%) selected by the pool creator at creation and immutable per pool (F6/F7), and there is no protocol-level parameter, treasury, or fee switch for an admin authority to configure. So there is nothing in the current spec for RFP-001 to back. Happy to add it if you intend to introduce a governable protocol fee or allowed-tier registry, but that would be a new requirement rather than something the RFP needs today.

status: open
dependencies: See Platform Dependencies section
category: Applications & Integrations
dependencies:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

• RFP-001 (Admin Authority) — Fee structure section: "The fee rate and treasury address are configured by the program's admin authority"
• RFP-002 (Freeze Authority) — Not explicitly required, but good practice for emergency pause

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

there is also dependency on oracle, actually

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Did not add an oracle dependency to RFP-015. The bonding curve is supply-driven: price advances deterministically with each purchase via the constant-product formula, and all amounts are denominated in the collateral token. There is no USD valuation or external price read anywhere in the design, so there is no oracle to depend on. (This differs from the lending and stablecoin RFPs, where I did add RFP-020 because they read external price feeds for collateral valuation.) Let me know if you had a specific use in mind.

funding: $XXXXX
status: open
category: Applications & Integrations
dependencies:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

  • RFP-001 (Admin Authority) — Fee structure: "The fee rate and treasury address are configured by the program's admin authority"
  • RFP-002 (Freeze Authority) — Design Rationale says: "The pause function is an emergency stop for security incidents, analogous to the freeze authority in RFP-002"

funding: $XXXXX
status: open
category: Applications & Integrations
dependencies:

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

  • RFP-001 (Admin Authority) — F3: creator can cancel, convert to non-cancelable / F4: creator configures transferability / batch creation, milestone signaling authority, configure fee rate

fryorcraken and others added 10 commits June 10, 2026 15:09
The frontmatter dependencies field is a machine-readable list of hard
dependencies only: open blockers the RFP cannot be contracted or
delivered without, each also explained in the body's Platform
Dependencies section. Soft and already-delivered dependencies are
described in the body only.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Re-derived from each RFP body after the Morpho Blue lending redesign
(PR #42), the RFP-004 rewrite (PR #41), and the closure of RFP-001,
RFP-002, LP-0012, LP-0014, and LP-0015:

- Frontmatter now lists open hard blockers only. Delivered primitives
  (LP-0012, LP-0014, LP-0015) move to body "Resolved dependencies"
  prose; soft dependencies (RFP-013's liquidation engine, RFP-020's
  price account standard, optional admin authority uses) are body only.
- Add LP-0013 (token transfer authorities, open) to every RFP whose
  program custodies tokens: RFP-003, RFP-012 through RFP-017.
- Add oracle dependency (RFP-020, with RFP-019 as alternative) to
  RFP-008, RFP-013, and RFP-014 per their price feed hard blockers.
- Add RFP-001 to RFP-019 and RFP-020 for owner and admin gated
  functions, per review feedback on PR #64.
- RFP-008 carries no RFP-002: the Morpho Blue design explicitly
  rejects an emergency pause. Dropped the stale RFP-002 Resources
  links from RFP-008 and RFP-012 accordingly.
- Convert remaining old-style string dependencies to the structured
  format; quote RFP-015's title (unquoted colon is invalid YAML).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Rule change: hard dependencies stay in the frontmatter after delivery,
with a per-entry status field mirroring the dependency's published
state (open = still blocking, closed = delivered or awarded). Restore
the delivered entries (LP-0012, LP-0014, LP-0015) accordingly and
update the template and NEW_RFP docs.

Verified against logos-execution-zone main: the clock program
(programs/clock) maintains sequencer-updated on-chain timestamp
accounts, and the time_locked_transfer example demonstrates
deadline-gated transfers. Therefore:

- Mark the on-chain clock delivered in RFP-013, RFP-016, and RFP-017
  (frontmatter LEZ-clock entries with status closed; body sections
  moved to Resolved dependencies).
- Mark LEZ-timelock resolved in RFP-003; it remains blocked only on
  LP-0013.
- Add Platform Dependencies subsections for the awarded authority
  libraries (RFP-001, RFP-002) so every frontmatter entry has body
  backing.
- Drop the RFP-019 soft-blocker entry from RFP-020: the adaptor ships
  fully without it via the forward-compatible struct fallback already
  specified in its Design Rationale, so it is interface coordination,
  not a dependency.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add a Platform Dependencies section to RFP-003 (hard: LP-0013;
resolved: LEZ timelock via the clock program; soft: the R&D item
"Use Basecamp to manage remote node", journeys.logos.co#62, which
improves the maker daemon and node setup journey but does not gate
delivery). Restore R&D items as a dependency category in the template
and NEW_RFP docs, pointing at logos-co/journeys.logos.co.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Resolve the RFP-019/RFP-004 interface gap without amending RFP-004:
the TWAP oracle owns the write side. If the DEX does not expose a
native price accumulator, the RFP-019 applicant delivers the
accumulator hook into the DEX program (contributed upstream) so
observations are recorded as a side effect of pool activity, with no
off-chain keeper or crank. Updated the overview, F1, the Platform
Dependencies RFP-004 entry, and the frontmatter reason.

Also fix stale links: RFP-001/RFP-002 -poc.md filenames in RFP-013,
RFP-014, and RFP-016 (renamed to -lib.md on master), and RFP-019's
Resources pointer to the removed advanced-lending-features file (now
Curated Lending Vaults).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Clarify the integration direction: RFP-019 delivers the TWAP
accumulator component as an integrable artefact, and the DEX (RFP-004)
is expected to hook it into every state-changing pool operation. Add
Functionality F.10 to RFP-004 with an expose-the-integration-point
fallback when the component is not yet available, plus a matching soft
blocker entry; reword RFP-019's overview, F1, Platform Dependencies,
and frontmatter reason accordingly.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Neither RFP gates the other's contracting or delivery: the oracle
program, accumulator component, and price account standard can be
built and acceptance-tested against a reference pool before a DEX is
live, and the DEX ships exposing the integration point if the
component is not ready (F.10). Live TWAP prices require both, which
is a production-readiness fact rather than a contract blocker. Move
RFP-004 from RFP-019's frontmatter to a body soft blocker, allow a
reference pool for testing in F1, and fix the timeline wording.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The TWAP accumulator component integrated per F.10 carries the
admin-governed parameters defined by RFP-019 (per-pool MAX_TICK_DELTA
clamp, observation cardinality registration), so the DEX does need the
standardised admin authority library after all. Frontmatter entry
(status closed, awarded and in development) plus a Platform
Dependencies hard-blocker subsection.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Formatting only, no content changes. mdformat --check now passes on
every markdown file, per the contributor instructions.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@fryorcraken fryorcraken force-pushed the add-dependencies-section branch from 10ec7fe to 2f61ad8 Compare June 10, 2026 06:56
@fryorcraken fryorcraken changed the title Add standardized Dependencies section to RFP template and existing RFPs Structured dependencies frontmatter with status across all RFPs Jun 10, 2026
@fryorcraken

Copy link
Copy Markdown
Collaborator Author

@mart1n-xyz rebased on master (the branch was rebuilt on top of the Morpho Blue lending redesign and the RFP-004 rewrite, so the old inline threads will show as outdated) and reworked per your review. The PR description has the full convention and dependency matrix; here is how each of your points landed:

  • LP-0014 / LP-0015 delivered, LP-0012 awarded: confirmed against the lambda-prize repo (all three are CLOSED). Entries are kept in the frontmatter with status: closed per the new convention, and each body's Resolved dependencies section records the delivery.
  • RFP-001/RFP-002 missing on the app RFPs: added wherever the body grounds them (RFP-013, RFP-014, RFP-015, RFP-016), with status: closed since both RFPs are awarded and the libraries are in development. RFP-008 deliberately has neither: the Morpho Blue design rejects an emergency pause and treats RFP-001 as a reference pattern (soft, in body).
  • Access control on the oracles (RFP-019, RFP-020): agreed, both now carry RFP-001 (feed registration, signer-set updates, MAX_TICK_DELTA governance).
  • Oracle dependency on lending/stablecoin: added RFP-020 (RFP-019 TWAP noted as the alternative) to RFP-008, RFP-012 (inherited), RFP-013, RFP-014.
  • Oracle on RFP-015 (bonding curve): not added; pricing is supply-driven with no external price read in the spec (see the inline thread).
  • RFP-001 on RFP-004: initially declined since fee tiers are per-pool immutable, but the new TWAP integration requirement (F.10, DEX hooks the RFP-019 accumulator component) introduces an admin-gated surface, so RFP-001 is now back on RFP-004. Your suggestion stands, with different grounding.
  • RFP-013 liquidation (RFP-014): soft dependency in the body as you proposed (placeholder path satisfies the functionality requirements, and it avoids a hard cycle with RFP-014's dependency on RFP-013).
  • LEZ timelock on RFP-003: verified on logos-execution-zone main that the clock program plus the time_locked_transfer pattern cover this, so it is recorded as resolved; RFP-003 is now blocked only on LP-0013 (token transfer authorities), which is also added to every token-custodian RFP.

Two judgment calls worth your eyes: the on-chain clock is marked delivered in RFP-013/016/017 based on the LEZ repo (programs/clock), and RFP-004/RFP-019 are now mutual soft dependencies (the oracle acceptance-tests against a reference pool; the DEX exposes the integration point if the component is not ready).

🤖 Generated with Claude Code

@mart1n-xyz mart1n-xyz left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Looks good. Agree with both points.

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