Skip to content

Add standardized Dependencies section to RFP template and existing RFPs#64

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

Add standardized Dependencies section to RFP template and existing RFPs#64
fryorcraken wants to merge 2 commits into
masterfrom
add-dependencies-section

Conversation

@fryorcraken
Copy link
Copy Markdown
Collaborator

Summary

Introduces a structured, machine-readable dependencies: field in the YAML frontmatter of every RFP. Each entry is an object with id (a canonical ID such as RFP-XXX or LP-XXXX) and reason (a short prose explanation). Standalone RFPs use dependencies: [].

Example:

dependencies:
  - id: RFP-001
    reason: Provides the standardised admin authority used to manage
      protocol parameters.
  - id: LP-0015
    reason: Hard blocker. General cross-program calls via tail calls
      are required to compose collateral transfers with subsequent
      position state updates atomically.

Why

flywheels.logos.co (a dashboard view over the Logos roadmap) wants this repo to be the canonical source of truth for RFP dependencies. Today each RFP declares dependencies differently:

  • Some have a freeform dependencies: string in frontmatter (e.g. dependencies: RFP-001 (Admin Authority), RFP-002 (Freeze Authority), or dependencies: See Platform Dependencies section).
  • Some only mention dependencies in the prose Platform Dependencies section.
  • Some don't surface dependencies anywhere.

That inconsistency makes mechanical parsing impossible. This PR standardises on YAML frontmatter (extending the existing convention rather than introducing a new markdown section) so downstream tools have a single, structured place to read from.

Convention chosen

YAML frontmatter, a list of { id, reason } objects. The README already requires running mdformat (with mdformat-frontmatter), so the frontmatter is already the right home for structured metadata. Five RFPs already use this slot; this PR makes the contents structured and consistent across all of them.

Non-breaking

  • The Dependencies field is new structure around information that already lives in the RFPs. No requirements, scope, or commitments are modified.
  • The existing ## Platform Dependencies prose sections inside each RFP are left intact; the frontmatter is the summary index for tooling.

Files touched

  • NEW_RFP.md, RFPs/RFP-000-template.md: template and contributor guidance updated.
  • 13 existing RFPs in RFPs/: dependencies: populated from each RFP's existing Platform Dependencies, frontmatter, and Resources references.
  • RFPs/RFP-015-bonding-curve-launchpad.md: title wrapped in quotes so the YAML frontmatter parses. The unquoted colon in the title (Privacy-Preserving Token Launchpad: Bonding Curve) made the existing frontmatter unparseable, blocking any structured field from working on that file. This is a one-line correctness fix, matching how RFP-016 already quotes its title.

The diff is intentionally frontmatter-only: I did not run mdformat across each whole file, since that would reflow large amounts of prose and bury the actual change. Happy to do a follow-up PR that runs mdformat . across the repo if maintainers prefer.

Judgment calls (where the existing dep info was ambiguous)

  • RFP-003 (Atomic Swaps): the only mentioned blocker is "LEZ timelock support", which is a platform feature with no canonical RFP-/LP- ID. Marked as dependencies: []; the prose note in the file is preserved.
  • RFP-004 (DEX): LP-0014 is referenced as the defining standard for the ATA derivation required by Functionality Create RFP-005 for Private Stablecoin Development #8. Treated as a dependency on that basis.
  • RFP-008 (Lending): lists RFP-001 and RFP-002 only in Resources, not as blockers; treated as soft references and omitted. LP-0015 and LP-0012 listed as hard and soft per the Platform Dependencies section.
  • RFP-013, RFP-014: existing frontmatter dependencies: strings listed RFP-001 / RFP-002 explicitly, so those are preserved and combined with LP-0015 (and RFP-013 for RFP-014) from the Platform Dependencies section.
  • RFP-019 (TWAP Oracle): hard-depends on RFP-004 (the oracle reads pool accumulators from the LEZ DEX). The file doesn't enumerate this in a "Platform Dependencies" section but the overview and design rationale make it explicit.
  • RFP-020 RedStone Oracle Adaptor: depends on RFP-019 (publishes through the canonical price account standard defined there).

Platform features that are not Logos RFPs or Lambda Prizes (e.g. "on-chain clock / timestamp", "LEZ price feed availability") are not assigned canonical IDs in this convention and are intentionally omitted from dependencies:. They remain documented in the prose Platform Dependencies sections. If the project decides to mint canonical IDs for LEZ platform features later, they can be added without breaking this format.

Test plan

  • CI green on add-dependencies-section.
  • All 14 RFP frontmatters parse as valid YAML (verified locally with pyyaml; every RFP returns a parseable dependencies list).
  • No prose changes outside frontmatter (verified via git diff — total diff is 101 insertions, 8 deletions across 15 files).
  • Optional: confirm mdformat . (with mdformat-frontmatter) leaves the new frontmatter blocks untouched, or follow up with a separate formatting-only PR.

fryorcraken and others added 2 commits May 28, 2026 11:23
Introduce a structured, machine-readable `dependencies:` field in the
YAML frontmatter of every RFP. Each entry is an object with `id` (the
canonical ID, e.g. `RFP-XXX` or `LP-XXXX`) and `reason` (a short prose
explanation). Standalone RFPs use `dependencies: []`.

This replaces the inconsistent prior convention (free-form text in the
frontmatter `dependencies:` field on some RFPs; prose-only references
in `Platform Dependencies` sections on others). The flywheels.logos.co
dashboard needs RFP deps in a parseable format, and YAML frontmatter
extends the convention already present in this repo rather than
introducing a new markdown section.

This change is non-breaking and additive:

- The Dependencies field is new structure around information that
  already lives in the RFPs. No requirements, scope, or commitments
  are modified.
- Prose `Platform Dependencies` sections inside each RFP are left
  intact; the frontmatter is a summary index for tooling.

Files updated:

- `NEW_RFP.md`, `RFPs/RFP-000-template.md`: template and contributor
  guidance updated to require the new field.
- All 13 existing RFP files: `dependencies:` populated from the
  RFP's existing Platform Dependencies section, frontmatter, and
  Resources references.
- `RFPs/RFP-015-bonding-curve-launchpad.md`: title quoted so the
  frontmatter parses as valid YAML (the unquoted colon in the title
  made the existing frontmatter unparseable, blocking any structured
  field from working on this file).

Judgment calls made when existing dep info was ambiguous:

- RFP-003 (Atomic Swaps): the only mentioned blocker is "LEZ timelock
  support", which is a platform feature with no RFP-/LP- canonical
  ID. Marked as `dependencies: []` and the prose note in the file is
  preserved.
- RFP-004 (DEX): LP-0014 is referenced as the defining standard for
  the ATA derivation required by Functionality #8. Treated as a
  dependency on that basis.
- RFP-008 (Lending): the file references RFP-001 and RFP-002 only
  in Resources, not as blockers; treated as soft references and
  omitted. LP-0015 and LP-0012 listed as hard and soft per the
  Platform Dependencies section.
- RFP-013, RFP-014: existing frontmatter `dependencies:` strings
  listed RFP-001 and RFP-002 explicitly, so they were preserved
  and combined with LP-0015 from the Platform Dependencies section.
- RFP-020 (Private Name Resolution Library, untracked locally): not
  included in this commit because it is not yet in master.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@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
Copy link
Copy Markdown
Collaborator

@mart1n-xyz mart1n-xyz left a comment

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

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

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

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

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