17 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is the Logos Ecosystem Wiki - a static site built with Quartz 4 to document Logos ecosystem-related information. The repository may be made public in the future, so never commit sensitive information.
The content focuses on the Integration effort which enables bi-directional feedback between the Logos technical stack and community by identifying technological needs, translating them into requirements, and propagating information about deliveries to encourage ecosystem building.
For Content Contributors
Quick Start
Primary workflow:
- Open
content/folder as Obsidian vault (see Content Management section below) - Create or edit markdown files following the structure templates
- Use wikilinks
[[path/to/file|Display Text]]to connect concepts - Add
> [!ai-generated]indicator after section headers for LLM-generated content - Run "check" command to validate structure and links
File naming convention:
- Use underscores instead of spaces:
activity_hub.mdnotActivity Hub.md
Integration Content Taxonomy
The Integration effort organizes content into three main categories:
1. Infrastructure Essentials (infrastructure_essentials/)
What belongs here: Core blockchain infrastructure that the network needs to operate and be accessible
Examples:
- Block explorers
- RPC endpoints and infrastructure
- Indexers and data availability layers
- Network monitoring and analytics
- Faucets and testnets
- Logos Storage
- Logos Messaging
2. Application Essentials (application_essentials/)
What belongs here: Developer tools and primitives needed to build applications on Logos
Examples:
- Smart contract toolchain (compilers, debuggers, testing frameworks)
- Development environments and IDEs
- Token creation standards and tools
- On-chain primitives (storage, compute, messaging)
- UI libraries and component kits
- SDK and API libraries
- Contract templates and boilerplates
3. Desired Projects (desired_projects/)
What belongs here: End-user applications and ecosystem projects that provide value to users
Examples:
- DeFi protocols (stablecoins, lending, DEXs)
- NFT marketplaces
- DAOs and governance tools
- Social applications
- Entity formation and legal tools
- Gaming and consumer apps
Creating Integration Content
Determining the Right Category
Use this decision tree:
-
Is it infrastructure for network access/visibility? →
infrastructure_essentials/- Block explorers, RPCs, indexers, monitoring, Logos Storage, Logos Messaging
-
Is it a tool/primitive for developers to build apps? →
application_essentials/- Toolchains, SDKs, standards, templates, on-chain primitives
-
Is it an end-user application or protocol? →
desired_projects/- DeFi, NFTs, DAOs, social apps, marketplaces
Standard Structure Template
All integration content files follow this structure:
---
title: Project Name
type: Desired Project | Core Primitive
priority:
flywheel: Liquidity | Security | Network Effects | Capital Efficiency
category: See category list below
---
Brief description paragraph (1-2 sentences explaining what the project does and why it matters).
> [!ai-generated]
> This entire document was generated by an LLM and has not yet been human-reviewed.
## FURPS+
### Functionality
- Core capabilities (what the system must DO)
- 5-8 concise numbered points maximum
- Focus on essential features, not implementation details
### Usability (optional)
- User experience and developer experience points
- 3-5 numbered points maximum
### Reliability (optional)
- Fault tolerance and recovery mechanisms
- 3-4 numbered points maximum
### Performance (optional)
- Critical performance requirements only
- 2-4 numbered points maximum
### Supportability (optional)
- Maintenance and extensibility concerns
- 2-3 numbered points maximum
### + (Privacy, Anonymity, Censorship-Resistance)
**IMPORTANT**: Keep this section concise (4-6 bullets). Focus on:
- **Privacy**: How user data and transaction details are protected
- **Anonymity**: How user identities and patterns are hidden
- **Security**: Key cryptographic guarantees
- **Censorship-Resistance**: How availability is ensured
Example (concise format):
- **Privacy**: Private transaction history not publicly visible
- **Anonymity**: Anonymous participation without identity disclosure
- **Security**: End-to-end encryption for sensitive operations
- **Censorship-Resistance**: Decentralized infrastructure prevents single points of failure
## Demand Validation
**Potential Users:** Description of target user groups
**Use Cases:**
- Specific scenario 1
- Specific scenario 2
- Specific scenario 3
## Possible Implementation
- **Implementation approach 1**: Brief description with key technical details
- **Implementation approach 2**: Alternative approach with trade-offs
- Technical considerations, protocols, or architectures
## Technical Validation
**Risks & Challenges:**
- Technical risk 1
- Implementation challenge 1
- Open research question 1
**Dependencies:** (optional)
List other projects, infrastructure, or tools required for this project to work:
- [[integration/desired_projects/other_project|Other Project Name]]
- External systems or protocols required
- Logos technology stack components needed
**Integration Points:** (optional)
- [[integration/desired_projects/related_project|Related Project]] for specific integration
- External systems or protocols
- Logos technology stack components
## Additional Project-Specific Sections (optional)
You may add project-specific sections as needed (e.g., "Gamification", "Sub-portals", "Tokenomics").
Place these AFTER the standard sections.
Writing FURPS+ Guidelines
Based on industry best practices, follow these principles when writing FURPS+ requirements:
General Principles:
- Use FURPS+ as a checklist for coverage, not rigid categorization
- Focus on specific, measurable, actionable requirements
- Avoid technical jargon - write for all stakeholders (developers to executives)
- Keep requirements testable and verifiable
- Prioritize essential requirements over exhaustive lists
Writing Effective Bullets:
- ✅ Be Specific: "Process 10,000 requests/second" not "perform well"
- ✅ Be Measurable: Include metrics, thresholds, or clear criteria
- ✅ Be Concise: One requirement per bullet point
- ✅ Be Actionable: Focus on "what" not "how"
- ❌ Avoid Vague Terms: "fast", "secure", "scalable" need quantification
Good vs Bad Examples:
| Good ✅ | Bad ❌ |
|---|---|
| Support 1000 concurrent users with <2s response time | System should be fast and scalable |
| Encrypt all user data at rest using AES-256 | Data should be secure |
| 99.9% uptime (max 8.76 hours downtime/year) | System should be reliable |
| Complete transaction in <500ms under normal load | Transactions should be quick |
| Private transaction history not publicly visible | Good privacy |
Category-Specific Guidance:
- Functionality: Core capabilities and feature set (what system must DO)
- Usability: Human factors, consistency, ease of use, documentation
- Reliability: Mean time between failures, recoverability, accuracy
- Performance: Response time, throughput, resource consumption limits
- Supportability: Testability, maintainability, extensibility, compatibility, platforms
- + (Privacy): Specific privacy, anonymity, censorship-resistance guarantees
Choosing Frontmatter Values
type:
Desired Project: Standard ecosystem application or serviceCore Primitive: Foundational infrastructure component
priority:
- IMPORTANT: When creating new entries, ALWAYS leave this field empty
0-9: Numeric priority (0 = highest, seecontent/integration/concerns/sustainability.mdfor tier definitions)- Priority is assigned later through dedicated prioritization processes
- Empty: Unassigned priority (this is the default and expected state for new entries)
flywheel: Choose the primary economic flywheel this project drives:
Liquidity: Attracts capital and trading activity (DEXs, lending, stablecoins)Security: Secures the network and user assets (staking, multisig, custody)Network Effects: Grows with user adoption (social apps, DAOs, marketplaces)Capital Efficiency: Maximizes utility of locked capital (liquid staking, lending)
category: Existing categories include:
DeFi Core: Fundamental DeFi primitives (DEX, lending, stablecoins)Advanced DeFi: Sophisticated financial instruments (derivatives, perps)Infrastructure: Base-layer services (bridges, oracles)Custody & Security: Asset protection (multisig, vaults)Staking & Security: Network security mechanismsNFTs & Identity: Digital ownership and identityGovernance: Decision-making systems (DAOs)Token Infrastructure: Token creation and distribution (launchpads)Consumer Apps: End-user applications (social, gaming)Organisation Tools: Team coordination (CMS, project management)Movement Tools: Logos movement-specific tools (activity hub)Winnable Issues: Projects addressing specific movement goals
Create a new category if none fit, using Title Case.
Wikilink Best Practices
When to add wikilinks:
- First mention of another desired project in the document
- Key integration points in "Technical Validation" or "Integration Points" sections
- Dependencies section (always link)
When NOT to add wikilinks:
- Repeated mentions of the same project within a document (link only the first)
- Generic references (e.g., "users need a DEX" vs "integrate with integration/desired_projects/private_dex")
- Within section headers
Format:
[[integration/desired_projects/file_name|Display Name]]
⚠️ Content Authorship Indicators
CRITICAL: This applies to ALL files in content/ folder - integration docs, processes, protocols, guides, and any other generated documents.
To clearly distinguish LLM-generated content from human-curated content, use the following markdown blockquote indicator:
LLM-Generated Content Marker
> [!ai-generated]
> This section was generated by an LLM and has not yet been human-reviewed.
Scope Rules:
- IMPORTANT: The indicator belongs to a whole section and must ALWAYS be placed immediately after the section header (before any content)
- The indicator applies to the entire section, including all subsections, until the next same-level or higher-level header
- A section ends when you reach another header at the same level (e.g.,
##to##) or higher level (e.g.,###to##)
Placement Guidelines:
For entirely AI-generated files (RECOMMENDED DEFAULT): place a single indicator at the very top of the file (after frontmatter and description) to cover the entire document - this applies to integration content, process documents, protocols, and any other content type
For partially AI-generated files:
- Place the indicator only under sections that are AI-generated
- Each major section (
##) that is AI-generated needs its own indicator
Examples:
Example 1: Entire file is AI-generated (recommended approach)
---
title: Example Project
---
Brief description of the project.
> [!ai-generated]
> This entire document was generated by an LLM and has not yet been human-reviewed.
## FURPS+
### Functionality
1. Statement 1
## Demand Validation
...
Example 2: Only FURPS+ section is AI-generated
## FURPS+
> [!ai-generated]
> This section was generated by an LLM and has not yet been human-reviewed.
### Functionality
1. Statement 1
2. Statement 2
### + (Privacy, Anonymity, Censorship-Resistance)
- Statement 3
## Demand Validation
**Potential Users:** (manually written, no indicator)
After human review: Simply remove the > [!ai-generated] block from reviewed sections, leaving only the content.
Content Quality Commands
"check" Command
When the user says "check", perform comprehensive quality assurance checks on the repository.
All check instructions are in AGENT-CHECK.md - refer to that file for:
- Complete checklist of all quality assurance tasks
- Automated bash commands for each check
- Expected outputs and reporting format
- Common issues and how to fix them
Note: Always exclude the tmp/ directory when running checks.
Content Management Best Practices
Obsidian Integration
Open the content/ folder (not repo root) as Obsidian vault:
- Enable "Automatically update internal links"
- Set link format to "Absolute path in vault"
- Enable Wikilinks
- Use Templater plugin with
templates/folder for auto-populated files
Ignore Patterns
The following are ignored by Quartz (configured in quartz.config.ts):
private/- Private notes not for publicationtemplates/- Obsidian templates.obsidian/- Obsidian configuration
Logos Integration Framework Reference
Mission
The Integration effort establishes bi-directional feedback between the Logos technical stack and ecosystem by:
- Identifying and evaluating technological needs of the community
- Translating needs into requirements for the technology stack
- Propagating information about deliveries to encourage building and contribution
Prioritization Framework
Three primary concerns drive requirement prioritization (defined in content/integration/index.md):
- Sustainability: Enable onchain activity and value accrual to sustain technology stack development
- Movement: Provide technological solutions for the movement to organize and solve winnable issues
- Technology De-Risking: Enable early delivery and validation of technology with highest unknowns and risks
Priority tiers are documented in content/integration/concerns/sustainability.md (0 = highest priority).
Privacy-First Principles
All desired projects emphasize privacy-preserving implementations for the Logos L1:
- Shielded transactions and balances
- ZK proofs for eligibility/verification without revealing identity
- MEV resistance through encrypted mempools
- Anonymous participation in governance and DeFi
For Site Developers
Technology Stack
- Quartz 4: Static site generator for publishing digital gardens from Markdown
- TypeScript: Strict mode enabled, targeting ESNext
- Preact: UI framework (JSX runtime configured via tsconfig.json)
- Content Source: Markdown files in
content/directory
Key Commands
Development
# Build and serve with live reload (primary dev command)
npx quartz build --serve
# Build documentation with live reload
npm run docs
Code Quality
# Type checking and formatting check
npm run check
# Auto-format code with Prettier
npm run format
# Run tests
npm test
Architecture
Plugin System
Quartz uses a three-phase plugin architecture defined in quartz/plugins/types.ts:
- Transformers (
quartz/plugins/transformers/): Process markdown content (parse, syntax highlighting, link crawling, etc.) - Filters (
quartz/plugins/filters/): Determine which content to publish (e.g., RemoveDrafts) - Emitters (
quartz/plugins/emitters/): Generate output files (HTML pages, assets, sitemap, RSS, etc.)
Plugins are configured in quartz.config.ts and execute in the order: Transformers → Filters → Emitters.
Build Pipeline
The build process (quartz/build.ts) follows this flow:
- Parse markdown files using transformers
- Filter content based on filter plugins
- Emit static assets and pages using emitter plugins
- Support incremental builds via change detection
Component System
UI components (quartz/components/*.tsx) are Preact-based with three optional lifecycle hooks:
css: Static stylesheet resourcebeforeDOMLoaded: Scripts that run before DOM readyafterDOMLoaded: Scripts that run after DOM ready
Layout structure is defined in cfg.ts as FullPageLayout with regions: head, header, beforeBody, pageBody, afterBody, left, right, footer.
Important Configuration
quartz.config.ts
Central configuration file containing:
- Site metadata (pageTitle, baseUrl, locale)
- Theme settings (typography, colors for light/dark mode)
- Analytics provider (currently set to Plausible)
- Plugin configuration for all three phases
- Ignore patterns for content filtering
Content Structure
content/index.md: Site homepagecontent/integration/: Integration effort documentationconcerns/: Priority drivers (sustainability, movement, tech de-risking)infrastructure_essentials/: Core blockchain infrastructure (block explorers, RPCs, Logos Storage/Messaging)application_essentials/: Developer tools and primitives (toolchains, SDKs, on-chain primitives)desired_projects/: End-user applications and protocols (DeFi, NFTs, DAOs, etc.)
Development Notes
- The site uses CustomOgImages plugin which is commented out in the default config to speed up build times
- File paths use
FilePathtype and utility functions fromquartz/util/path.ts - Build context (
BuildCtx) flows through all plugins and components - Date handling supports multiple sources with priority: frontmatter → git → filesystem
- Link resolution uses
shortestmarkdown link resolution strategy