Add standardized Dependencies section to RFP template and existing RFPs#64
Add standardized Dependencies section to RFP template and existing RFPs#64fryorcraken wants to merge 2 commits into
Conversation
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>
|
Dropped the |
mart1n-xyz
left a comment
There was a problem hiding this comment.
Many dependencies missing, some LPs referenced already available.
| status: open | ||
| category: Applications & Integrations | ||
| dependencies: | ||
| - id: LP-0014 |
There was a problem hiding this comment.
LP-0014 has been delivered by r4bbit
| dependencies: See Platform Dependencies section | ||
| category: Applications & Integrations | ||
| dependencies: | ||
| - id: LP-0015 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
LP-0015 already delivered by LEZ team
| - id: RFP-002 | ||
| reason: Provides the standardised freeze authority used to pause | ||
| protocol operations. | ||
| - id: LP-0015 |
There was a problem hiding this comment.
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 |
There was a problem hiding this comment.
LP-0015 already delivered by LEZ team
| funding: $TBD | ||
| status: open | ||
| category: Applications & Integrations | ||
| dependencies: [] |
There was a problem hiding this comment.
Hard blocker (no LP ID, just platform feature): LEZ timelock support
| funding: $XXXXX | ||
| status: open | ||
| category: Applications & Integrations | ||
| dependencies: |
There was a problem hiding this comment.
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: |
There was a problem hiding this comment.
• 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
There was a problem hiding this comment.
there is also dependency on oracle, actually
| funding: $XXXXX | ||
| status: open | ||
| category: Applications & Integrations | ||
| dependencies: |
There was a problem hiding this comment.
- 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: |
There was a problem hiding this comment.
- RFP-001 (Admin Authority) — F3: creator can cancel, convert to non-cancelable / F4: creator configures transferability / batch creation, milestone signaling authority, configure fee rate
Summary
Introduces a structured, machine-readable
dependencies:field in the YAML frontmatter of every RFP. Each entry is an object withid(a canonical ID such asRFP-XXXorLP-XXXX) andreason(a short prose explanation). Standalone RFPs usedependencies: [].Example:
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:
dependencies:string in frontmatter (e.g.dependencies: RFP-001 (Admin Authority), RFP-002 (Freeze Authority), ordependencies: See Platform Dependencies section).Platform Dependenciessection.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 runningmdformat(withmdformat-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
## Platform Dependenciesprose 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.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
mdformatacross each whole file, since that would reflow large amounts of prose and bury the actual change. Happy to do a follow-up PR that runsmdformat .across the repo if maintainers prefer.Judgment calls (where the existing dep info was ambiguous)
dependencies: []; the prose note in the file is preserved.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.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 prosePlatform Dependenciessections. If the project decides to mint canonical IDs for LEZ platform features later, they can be added without breaking this format.Test plan
add-dependencies-section.pyyaml; every RFP returns a parseabledependencieslist).git diff— total diff is 101 insertions, 8 deletions across 15 files).mdformat .(withmdformat-frontmatter) leaves the new frontmatter blocks untouched, or follow up with a separate formatting-only PR.