This commit resolves all documentation issues identified in the comprehensive review: CRITICAL FIXES: - Renumbered duplicate ADRs to eliminate conflicts: * ADR-022-migration-race-condition-fix → ADR-037 * ADR-022-syndication-formats → ADR-038 * ADR-023-microformats2-compliance → ADR-040 * ADR-027-versioning-strategy-for-authorization-removal → ADR-042 * ADR-030-CORRECTED-indieauth-endpoint-discovery → ADR-043 * ADR-031-endpoint-discovery-implementation → ADR-044 - Updated all cross-references to renumbered ADRs in: * docs/projectplan/ROADMAP.md * docs/reports/v1.0.0-rc.5-migration-race-condition-implementation.md * docs/reports/2025-11-24-endpoint-discovery-analysis.md * docs/decisions/ADR-043-CORRECTED-indieauth-endpoint-discovery.md * docs/decisions/ADR-044-endpoint-discovery-implementation.md - Updated README.md version from 1.0.0 to 1.1.0 - Tracked ADR-021-indieauth-provider-strategy.md in git DOCUMENTATION IMPROVEMENTS: - Created comprehensive INDEX.md files for all docs/ subdirectories: * docs/architecture/INDEX.md (28 documents indexed) * docs/decisions/INDEX.md (55 ADRs indexed with topical grouping) * docs/design/INDEX.md (phase plans and feature designs) * docs/standards/INDEX.md (9 standards with compliance checklist) * docs/reports/INDEX.md (57 implementation reports) * docs/deployment/INDEX.md (deployment guides) * docs/examples/INDEX.md (code samples and usage patterns) * docs/migration/INDEX.md (version migration guides) * docs/releases/INDEX.md (release documentation) * docs/reviews/INDEX.md (architectural reviews) * docs/security/INDEX.md (security documentation) - Updated CLAUDE.md with complete folder descriptions including: * docs/migration/ * docs/releases/ * docs/security/ VERIFICATION: - All ADR numbers now sequential and unique (50 total ADRs) - No duplicate ADR numbers remain - All cross-references updated and verified - Documentation structure consistent and well-organized These changes improve documentation discoverability, maintainability, and ensure proper version tracking. All index files follow consistent format with clear navigation guidance. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
5.0 KiB
5.0 KiB
Syndication Features Specification
Overview
This document tracks the implementation of expanded syndication format support for StarPunk CMS, targeting v1.1.2 and v1.2.0 releases.
Feature Set
1. ATOM Feed Support (v1.1.2)
Status: Planned Effort: 2-4 hours Priority: High
Requirements
- RFC 4287 compliance
- Available at
/feed.atomendpoint - Include all published notes
- Support same filtering as RSS feed
- Proper content encoding
Technical Approach
- Leverage feedgen library's built-in ATOM support
- Minimal code changes from RSS implementation
- Share note iteration logic with RSS feed
Acceptance Criteria
- Valid ATOM 1.0 feed generated
- Passes W3C Feed Validator
- Contains all RSS feed content
- Auto-discovery link in HTML head
- Content properly escaped/encoded
- Unit tests with 100% coverage
2. JSON Feed Support (v1.1.2)
Status: Planned Effort: 4-6 hours Priority: Medium
Requirements
- JSON Feed v1.1 specification compliance
- Available at
/feed.jsonendpoint - Native JSON serialization
- Support attachments for future media
Technical Approach
- Direct serialization from Note model
- No XML parsing/generation
- Clean JSON structure
- Optional fields for extensibility
JSON Feed Structure
{
"version": "https://jsonfeed.org/version/1.1",
"title": "Site Name",
"home_page_url": "https://example.com",
"feed_url": "https://example.com/feed.json",
"description": "Site description",
"items": [
{
"id": "unique-id",
"url": "https://example.com/note/slug",
"content_html": "<p>HTML content</p>",
"date_published": "2025-11-25T10:00:00Z",
"date_modified": "2025-11-25T10:00:00Z"
}
]
}
Acceptance Criteria
- Valid JSON Feed v1.1 output
- Passes JSON Feed Validator
- Proper HTML encoding in content_html
- ISO 8601 date formatting
- Auto-discovery link in HTML head
- Unit tests with full coverage
3. Strict Microformats2 Support (v1.2.0)
Status: Planned Effort: 10-16 hours Priority: High (IndieWeb core requirement)
Requirements
- Complete h-entry markup
- Author h-card implementation
- h-feed on index pages
- Backward compatible with existing CSS
Implementation Scope
h-entry (Enhanced)
Current state:
- ✅ h-entry class
- ✅ e-content
- ✅ dt-published
- ✅ u-url
To add:
- p-name (extracted title)
- p-summary (excerpt generation)
- p-author (embedded h-card)
- p-category (when tags implemented)
- u-uid (unique identifier)
h-card (New)
- p-name (author name from config)
- u-url (author URL from config)
- u-photo (optional avatar)
- p-note (optional bio)
h-feed (New)
- h-feed wrapper on index
- p-name (site title)
- p-author (site-level h-card)
- Nested h-entry items
Template Changes Required
base.html- Add author h-card in header/footerindex.html- Wrap notes in h-feednote.html- Complete h-entry properties- New partial:
note_summary.htmlfor consistent markup
Acceptance Criteria
- Passes microformats2 validator
- Parseable by IndieWeb tools
- XRay parser compatibility
- CSS remains functional
- No visual regression
- Documentation of all mf2 classes used
Testing Strategy
Feed Validation
- W3C Feed Validator for ATOM
- JSON Feed Validator for JSON
- Microformats2 parser for HTML
Automated Tests
- Unit tests for feed generation
- Integration tests for endpoints
- Validation tests using external validators
- Regression tests for existing RSS
Manual Testing
- Multiple feed readers compatibility
- IndieWeb tools parsing
- Social readers integration
Dependencies
External Libraries
- feedgen (existing) - ATOM support included
- No new dependencies for JSON Feed
- No new dependencies for microformats2
Configuration
- New config options for author info (h-card)
- Feed URLs in auto-discovery links
Migration Impact
- None - all features are additive
- Existing RSS feed unchanged
- No database changes required
Documentation Requirements
- Update user guide with feed URLs
- Document microformats2 markup
- Add feed discovery information
- Include validation instructions
Risk Assessment
Low Risk
- ATOM feed (uses existing library)
- JSON Feed (simple serialization)
Medium Risk
- Microformats2 (template complexity)
- CSS selector conflicts
Mitigation
- Incremental template changes
- Thorough CSS testing
- Use mf2 validators throughout
Success Metrics
- All feeds validate successfully
- No performance degradation
- Feed readers consume without errors
- IndieWeb tools parse correctly
- Zero visual regression in UI