{"owner":"Ranchero-Software","repo":"NetNewsWire","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["CLAUDE.md"],"skills":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Build and Development Commands\n\n### Building and Testing\n- **Full build and test**: `./buildscripts/build_and_test.sh` - Builds both macOS and iOS targets and runs all tests\n- **Quiet build and test**: `./buildscripts/quiet_build_and_test.sh` - Same as above with less verbose output\n- **Manual Xcode builds**:\n  - macOS: `xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire -destination \"platform=macOS,arch=arm64\" build`\n  - iOS: `xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire-iOS -destination \"platform=iOS Simulator,name=iPhone 17\" build`\n\n### Testing\n- Run all tests: Use the `NetNewsWire.xctestplan` which includes tests from all modules\n- Individual test runs follow same xcodebuild pattern with `test` action instead of `build`\n\n### Setup\n- First-time setup: Run `./setup.sh` to configure development environment and code signing\n- Manual setup: Create `SharedXcodeSettings/DeveloperSettings.xcconfig` in parent directory\n\n## Project Architecture\n\n### High-Level Structure\nNetNewsWire is a multi-platform RSS reader with separate targets for macOS and iOS, organized as a modular architecture with shared business logic.\n\n### Key Modules (in /Modules)\n- **RSCore**: Core utilities, extensions, and shared infrastructure\n- **RSParser**: Feed parsing (RSS, Atom, JSON Feed, RSS-in-JSON)\n- **RSWeb**: HTTP networking, downloading, caching, and web services\n- **RSDatabase**: SQLite database abstraction layer using FMDB\n- **Account**: Account management (Local, Feedbin, Feedly, NewsBlur, Reader API, CloudKit)\n- **Articles**: Article and author data models\n- **ArticlesDatabase**: Article storage and search functionality\n- **SyncDatabase**: Cross-device synchronization state management\n- **Secrets**: Secure credential and API key management\n\n### Platform-Specific Code\n- **Mac/**: macOS-specific UI (AppKit), preferences, main window management\n- **iOS/**: iOS-specific UI (UIKit), settings, navigation\n- **Shared/**: Cross-platform business logic, article rendering, smart feeds\n\n### Key Architectural Patterns\n- **Account System**: Pluggable account delegates for different sync services\n- **Feed Management**: Hierarchical folder/feed organization with OPML import/export\n- **Article Rendering**: Template-based HTML rendering with custom CSS themes\n- **Smart Feeds**: Virtual feeds (Today, All Unread, Starred) implemented as PseudoFeed protocol\n- **Timeline/Detail**: Classic three-pane interface (sidebar, timeline, detail)\n\n### Extension Points\n- Share extensions for both platforms\n- Safari extension for feed subscription\n- Widget support for iOS\n- AppleScript support on macOS\n- Intent extensions for Siri shortcuts\n\n### Development Notes\n- Uses Xcode project with Swift Package Manager for module dependencies\n- Requires `xcbeautify` for formatted build output in scripts\n- API keys are managed through buildscripts/updateSecrets.sh (runs during builds)\n- Some features disabled in development builds due to private API keys\n- Code signing configured through SharedXcodeSettings for development\n- Documentation and technical notes are located in the `Technotes/` folder\n\n## Code Formatting\n\nPrefer idiomatic modern Swift.\n\nPrefer `if let x` and `guard let x` over `if let x = x` and `guard let x = x`.\n\nDon’t use `...` or `…` in Logger messages.\n\nGuard statements should always put the return in a separate line.\n\nDon’t do force unwrapping of optionals.\n\n## Things to Know\n\nJust because unit tests pass doesn’t mean a given bug is fixed. It may not have a test. It may not even be testable — it may require manual testing.\n"},"files":{"CLAUDE.md":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Build and Development Commands\n\n### Building and Testing\n- **Full build and test**: `./buildscripts/build_and_test.sh` - Builds both macOS and iOS targets and runs all tests\n- **Quiet build and test**: `./buildscripts/quiet_build_and_test.sh` - Same as above with less verbose output\n- **Manual Xcode builds**:\n  - macOS: `xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire -destination \"platform=macOS,arch=arm64\" build`\n  - iOS: `xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire-iOS -destination \"platform=iOS Simulator,name=iPhone 17\" build`\n\n### Testing\n- Run all tests: Use the `NetNewsWire.xctestplan` which includes tests from all modules\n- Individual test runs follow same xcodebuild pattern with `test` action instead of `build`\n\n### Setup\n- First-time setup: Run `./setup.sh` to configure development environment and code signing\n- Manual setup: Create `SharedXcodeSettings/DeveloperSettings.xcconfig` in parent directory\n\n## Project Architecture\n\n### High-Level Structure\nNetNewsWire is a multi-platform RSS reader with separate targets for macOS and iOS, organized as a modular architecture with shared business logic.\n\n### Key Modules (in /Modules)\n- **RSCore**: Core utilities, extensions, and shared infrastructure\n- **RSParser**: Feed parsing (RSS, Atom, JSON Feed, RSS-in-JSON)\n- **RSWeb**: HTTP networking, downloading, caching, and web services\n- **RSDatabase**: SQLite database abstraction layer using FMDB\n- **Account**: Account management (Local, Feedbin, Feedly, NewsBlur, Reader API, CloudKit)\n- **Articles**: Article and author data models\n- **ArticlesDatabase**: Article storage and search functionality\n- **SyncDatabase**: Cross-device synchronization state management\n- **Secrets**: Secure credential and API key management\n\n### Platform-Specific Code\n- **Mac/**: macOS-specific UI (AppKit), preferences, main window management\n- **iOS/**: iOS-specific UI (UIKit), settings, navigation\n- **Shared/**: Cross-platform business logic, article rendering, smart feeds\n\n### Key Architectural Patterns\n- **Account System**: Pluggable account delegates for different sync services\n- **Feed Management**: Hierarchical folder/feed organization with OPML import/export\n- **Article Rendering**: Template-based HTML rendering with custom CSS themes\n- **Smart Feeds**: Virtual feeds (Today, All Unread, Starred) implemented as PseudoFeed protocol\n- **Timeline/Detail**: Classic three-pane interface (sidebar, timeline, detail)\n\n### Extension Points\n- Share extensions for both platforms\n- Safari extension for feed subscription\n- Widget support for iOS\n- AppleScript support on macOS\n- Intent extensions for Siri shortcuts\n\n### Development Notes\n- Uses Xcode project with Swift Package Manager for module dependencies\n- Requires `xcbeautify` for formatted build output in scripts\n- API keys are managed through buildscripts/updateSecrets.sh (runs during builds)\n- Some features disabled in development builds due to private API keys\n- Code signing configured through SharedXcodeSettings for development\n- Documentation and technical notes are located in the `Technotes/` folder\n\n## Code Formatting\n\nPrefer idiomatic modern Swift.\n\nPrefer `if let x` and `guard let x` over `if let x = x` and `guard let x = x`.\n\nDon’t use `...` or `…` in Logger messages.\n\nGuard statements should always put the return in a separate line.\n\nDon’t do force unwrapping of optionals.\n\n## Things to Know\n\nJust because unit tests pass doesn’t mean a given bug is fixed. It may not have a test. It may not even be testable — it may require manual testing.\n"},"items":[{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# CLAUDE.md\n\nThis file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.\n\n## Build and Development Commands\n\n### Building and Testing\n- **Full build and test**: `./buildscripts/build_and_test.sh` - Builds both macOS and iOS targets and runs all tests\n- **Quiet build and test**: `./buildscripts/quiet_build_and_test.sh` - Same as above with less verbose output\n- **Manual Xcode builds**:\n  - macOS: `xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire -destination \"platform=macOS,arch=arm64\" build`\n  - iOS: `xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire-iOS -destination \"platform=iOS Simulator,name=iPhone 17\" build`\n\n### Testing\n- Run all tests: Use the `NetNewsWire.xctestplan` which includes tests from all modules\n- Individual test runs follow same xcodebuild pattern with `test` action instead of `build`\n\n### Setup\n- First-time setup: Run `./setup.sh` to configure development environment and code signing\n- Manual setup: Create `SharedXcodeSettings/DeveloperSettings.xcconfig` in parent directory\n\n## Project Architecture\n\n### High-Level Structure\nNetNewsWire is a multi-platform RSS reader with separate targets for macOS and iOS, organized as a modular architecture with shared business logic.\n\n### Key Modules (in /Modules)\n- **RSCore**: Core utilities, extensions, and shared infrastructure\n- **RSParser**: Feed parsing (RSS, Atom, JSON Feed, RSS-in-JSON)\n- **RSWeb**: HTTP networking, downloading, caching, and web services\n- **RSDatabase**: SQLite database abstraction layer using FMDB\n- **Account**: Account management (Local, Feedbin, Feedly, NewsBlur, Reader API, CloudKit)\n- **Articles**: Article and author data models\n- **ArticlesDatabase**: Article storage and search functionality\n- **SyncDatabase**: Cross-device synchronization state management\n- **Secrets**: Secure credential and API key management\n\n### Platform-Specific Code\n- **Mac/**: macOS-specific UI (AppKit), preferences, main window management\n- **iOS/**: iOS-specific UI (UIKit), settings, navigation\n- **Shared/**: Cross-platform business logic, article rendering, smart feeds\n\n### Key Architectural Patterns\n- **Account System**: Pluggable account delegates for different sync services\n- **Feed Management**: Hierarchical folder/feed organization with OPML import/export\n- **Article Rendering**: Template-based HTML rendering with custom CSS themes\n- **Smart Feeds**: Virtual feeds (Today, All Unread, Starred) implemented as PseudoFeed protocol\n- **Timeline/Detail**: Classic three-pane interface (sidebar, timeline, detail)\n\n### Extension Points\n- Share extensions for both platforms\n- Safari extension for feed subscription\n- Widget support for iOS\n- AppleScript support on macOS\n- Intent extensions for Siri shortcuts\n\n### Development Notes\n- Uses Xcode project with Swift Package Manager for module dependencies\n- Requires `xcbeautify` for formatted build output in scripts\n- API keys are managed through buildscripts/updateSecrets.sh (runs during builds)\n- Some features disabled in development builds due to private API keys\n- Code signing configured through SharedXcodeSettings for development\n- Documentation and technical notes are located in the `Technotes/` folder\n\n## Code Formatting\n\nPrefer idiomatic modern Swift.\n\nPrefer `if let x` and `guard let x` over `if let x = x` and `guard let x = x`.\n\nDon’t use `...` or `…` in Logger messages.\n\nGuard statements should always put the return in a separate line.\n\nDon’t do force unwrapping of optionals.\n\n## Things to Know\n\nJust because unit tests pass doesn’t mean a given bug is fixed. It may not have a test. It may not even be testable — it may require manual testing.\n","category":"root","tokens":923}]}