From ed41e4577d51cb8a1ab64d0204edfb2527e3c485 Mon Sep 17 00:00:00 2001 From: Jordan Partridge Date: Sun, 14 Dec 2025 01:06:38 -0700 Subject: [PATCH 1/2] chore: update profile README with Sentinel certification focus - Replace agent-focused marketing with quality-focused messaging - Add Sentinel certified badges for each package - Highlight 100% test coverage requirement - Document certification checks (tests, security, Pest syntax, PHPStan) - Add auto-merge on certification pass workflow --- profile/README.md | 146 +++++++++++++++++++++++++--------------------- 1 file changed, 78 insertions(+), 68 deletions(-) diff --git a/profile/README.md b/profile/README.md index 953f26f..adec645 100644 --- a/profile/README.md +++ b/profile/README.md @@ -1,95 +1,105 @@ # Conduit -**GitHub automation that actually works.** +> **Production-grade GitHub API connectors with 100% test coverage** -Composable PHP packages built for AI agents. Each package is a single verb: `issue`, `pr`, `commit`, `repo`, `action`. Chain them together to build autonomous GitHub workflows that don't break. +[![Sentinel Certified](https://img.shields.io/badge/Sentinel-Certified-brightgreen?style=flat-square)](https://github.com/synapse-sentinel/gate) -## The Ecosystem +## What is Conduit? -| Package | What It Does | Install | -|---------|--------------|---------| -| [connector](https://github.com/conduit-ui/connector) | HTTP foundation layer (Saloon) | `composer require conduit-ui/connector` | -| [issue](https://github.com/conduit-ui/issue) | Create, update, close issues | `composer require conduit-ui/issue` | -| [pr](https://github.com/conduit-ui/pr) | Manage pull requests | `composer require conduit-ui/pr` | -| [commit](https://github.com/conduit-ui/commit) | Work with commit history | `composer require conduit-ui/commit` | -| [repo](https://github.com/conduit-ui/repo) | Repository governance | `composer require conduit-ui/repo` | -| [action](https://github.com/conduit-ui/action) | Trigger GitHub Actions | `composer require conduit-ui/action` | -| [review](https://github.com/conduit-ui/review) | Code review automation | `composer require conduit-ui/review` | -| [know](https://github.com/conduit-ui/know) | Agent domain knowledge | `composer require conduit-ui/know` | +Conduit is an ecosystem of PHP packages for GitHub API integration. Each package is: -## Quick Start +- **100% test coverage** - Every line tested +- **Sentinel Certified** - Automated quality gates enforce standards +- **Type-safe** - Full PHP 8.2+ type coverage +- **Production-ready** - Used in real applications -```php -use ConduitUi\GitHubConnector\Connector; -use ConduitUi\Issue\IssueResource; - -// Connect -$connector = new Connector(token: 'ghp_...'); - -// Create issue -$issue = new IssueResource($connector); -$issue->create('owner/repo', [ - 'title' => 'Bug found by agent', - 'body' => 'Details...', - 'labels' => ['bug', 'agent-created'] -]); +## Ecosystem + +| Package | Purpose | Status | +|---------|---------|--------| +| [connector](https://github.com/conduit-ui/connector) | HTTP transport layer with typed exceptions | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/connector/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/connector/actions/workflows/gate.yml) | +| [issue](https://github.com/conduit-ui/issue) | Issue management (CRUD, labels, assignees, milestones) | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/issue/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/issue/actions/workflows/gate.yml) | +| [pr](https://github.com/conduit-ui/pr) | Pull request operations (review, merge, query) | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/pr/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/pr/actions/workflows/gate.yml) | +| [repo](https://github.com/conduit-ui/repo) | Repository management | Coming soon | +| [action](https://github.com/conduit-ui/action) | GitHub Actions integration | Coming soon | +| [commit](https://github.com/conduit-ui/commit) | Commit operations | Coming soon | + +## Quality Standards + +Every package in the Conduit ecosystem passes **Synapse Sentinel** certification: + +``` +✓ Tests & Coverage (100% threshold) +✓ Security Audit (no vulnerabilities) +✓ Pest Syntax (describe/it blocks) +✓ Static Analysis (PHPStan level 8) ``` -Each package is: -- **Minimal** - One responsibility -- **Composable** - Mix and match -- **Type-safe** - Full PHP 8.2+ typing -- **Tested** - Pest coverage +PRs automatically merge when certification passes. No exceptions. -## Built for Agents +## Installation -Human developers use GitHub's UI. AI agents need programmatic interfaces. +```bash +# Core connector (required) +composer require conduit-ui/connector -Conduit gives agents structured, deterministic access to GitHub. Same input, same output. No surprises. +# Add packages as needed +composer require conduit-ui/issue +composer require conduit-ui/pr +``` -Perfect for: -- Autonomous issue triaging -- Automated PR workflows -- Repository governance bots -- GitHub Actions orchestration -- Code review automation +## Quick Start + +```php +use ConduitUI\Connector\Connector; +use ConduitUI\Issue\IssuesService; + +// Initialize +$connector = new Connector(env('GITHUB_TOKEN')); +$issues = new IssuesService($connector); + +// Use +$issue = $issues->get('owner', 'repo', 123); +$issues->addLabels('owner', 'repo', 123, ['bug', 'priority-high']); +$issues->close('owner', 'repo', 123); +``` ## Architecture ``` -┌─────────────┐ -│ Your Agent │ -└──────┬──────┘ - │ - ↓ -┌─────────────────────────────────────┐ -│ Conduit Packages (issue/pr/etc) │ -└──────────────┬──────────────────────┘ - │ - ↓ - ┌──────────────┐ - │ Connector │ ← Saloon HTTP - └──────┬───────┘ - │ - ↓ - ┌──────────────┐ - │ GitHub API │ - └──────────────┘ +┌─────────────────────────────────────────────────────┐ +│ Your Application │ +├─────────────────────────────────────────────────────┤ +│ issue │ pr │ repo │ action │ commit │ +├─────────────────────────────────────────────────────┤ +│ connector │ +├─────────────────────────────────────────────────────┤ +│ Saloon HTTP Client │ +└─────────────────────────────────────────────────────┘ ``` -## Philosophy +- **connector**: Authentication, rate limiting, typed exceptions +- **Domain packages**: Clean APIs for specific GitHub resources +- **Saloon**: Battle-tested HTTP client underneath + +## Requirements + +- PHP 8.2+ +- GitHub personal access token + +## Contributing -- **Singular**: One word, one purpose -- **Deterministic**: Predictable behavior -- **Agent-first**: Built for automation -- **No magic**: Explicit over implicit +1. Fork the relevant package +2. Write tests first (100% coverage required) +3. Implement your changes +4. PR auto-merges when Sentinel certifies ## Support Open issues on package repos. PRs welcome. -For enterprise support or custom packages: jordan@partridge.rocks +For enterprise support: jordan@partridge.rocks ---- +## License -*Part of [THE SHIT](https://github.com/the-shit) - Developer tools that don't suck.* +MIT From 15d358edb5cf961efe3d896be126332e21dea82a Mon Sep 17 00:00:00 2001 From: Jordan Partridge Date: Sun, 14 Dec 2025 16:57:32 -0700 Subject: [PATCH 2/2] chore: add WIP status badges and improve messaging - New tagline: 'work exactly as documented. No surprises.' - Add 'The Standard' section explaining certification - Status badges: Sentinel (green), Building (yellow), Planned (grey) - Clearer WIP communication for uncertified packages --- profile/README.md | 53 +++++++++++++++++++---------------------------- 1 file changed, 21 insertions(+), 32 deletions(-) diff --git a/profile/README.md b/profile/README.md index adec645..0859507 100644 --- a/profile/README.md +++ b/profile/README.md @@ -1,32 +1,33 @@ # Conduit -> **Production-grade GitHub API connectors with 100% test coverage** +> **GitHub API connectors that work exactly as documented. No surprises. No exceptions.** [![Sentinel Certified](https://img.shields.io/badge/Sentinel-Certified-brightgreen?style=flat-square)](https://github.com/synapse-sentinel/gate) -## What is Conduit? +## The Standard -Conduit is an ecosystem of PHP packages for GitHub API integration. Each package is: +Every certified Conduit package: +- **Works as documented** - No hidden behaviors or edge cases +- **100% test coverage** - Every line proven correct +- **Fails fast** - Typed exceptions, not silent errors +- **Auto-verified** - PRs merge only when Sentinel certifies -- **100% test coverage** - Every line tested -- **Sentinel Certified** - Automated quality gates enforce standards -- **Type-safe** - Full PHP 8.2+ type coverage -- **Production-ready** - Used in real applications +Packages without the Sentinel badge are in active development. ## Ecosystem | Package | Purpose | Status | |---------|---------|--------| -| [connector](https://github.com/conduit-ui/connector) | HTTP transport layer with typed exceptions | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/connector/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/connector/actions/workflows/gate.yml) | -| [issue](https://github.com/conduit-ui/issue) | Issue management (CRUD, labels, assignees, milestones) | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/issue/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/issue/actions/workflows/gate.yml) | -| [pr](https://github.com/conduit-ui/pr) | Pull request operations (review, merge, query) | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/pr/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/pr/actions/workflows/gate.yml) | -| [repo](https://github.com/conduit-ui/repo) | Repository management | Coming soon | -| [action](https://github.com/conduit-ui/action) | GitHub Actions integration | Coming soon | -| [commit](https://github.com/conduit-ui/commit) | Commit operations | Coming soon | +| [connector](https://github.com/conduit-ui/connector) | HTTP transport, typed exceptions | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/connector/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/connector/actions/workflows/gate.yml) | +| [issue](https://github.com/conduit-ui/issue) | Issue CRUD, labels, milestones | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/issue/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/issue/actions/workflows/gate.yml) | +| [pr](https://github.com/conduit-ui/pr) | PR review, merge, query | [![Sentinel](https://img.shields.io/github/actions/workflow/status/conduit-ui/pr/gate.yml?label=Sentinel&style=flat-square)](https://github.com/conduit-ui/pr/actions/workflows/gate.yml) | +| [repo](https://github.com/conduit-ui/repo) | Repository management | ![Building](https://img.shields.io/badge/status-building-yellow?style=flat-square) | +| [commit](https://github.com/conduit-ui/commit) | Commit operations | ![Planned](https://img.shields.io/badge/status-planned-lightgrey?style=flat-square) | +| [action](https://github.com/conduit-ui/action) | GitHub Actions integration | ![Planned](https://img.shields.io/badge/status-planned-lightgrey?style=flat-square) | -## Quality Standards +## Quality Gates -Every package in the Conduit ecosystem passes **Synapse Sentinel** certification: +Every package passes **Synapse Sentinel** certification: ``` ✓ Tests & Coverage (100% threshold) @@ -35,30 +36,22 @@ Every package in the Conduit ecosystem passes **Synapse Sentinel** certification ✓ Static Analysis (PHPStan level 8) ``` -PRs automatically merge when certification passes. No exceptions. +PRs auto-merge when certification passes. No exceptions. -## Installation +## Quick Start ```bash -# Core connector (required) -composer require conduit-ui/connector - -# Add packages as needed -composer require conduit-ui/issue -composer require conduit-ui/pr +composer require conduit-ui/connector conduit-ui/issue ``` -## Quick Start - ```php use ConduitUI\Connector\Connector; use ConduitUI\Issue\IssuesService; -// Initialize $connector = new Connector(env('GITHUB_TOKEN')); $issues = new IssuesService($connector); -// Use +// Every method works exactly as documented $issue = $issues->get('owner', 'repo', 123); $issues->addLabels('owner', 'repo', 123, ['bug', 'priority-high']); $issues->close('owner', 'repo', 123); @@ -78,10 +71,6 @@ $issues->close('owner', 'repo', 123); └─────────────────────────────────────────────────────┘ ``` -- **connector**: Authentication, rate limiting, typed exceptions -- **Domain packages**: Clean APIs for specific GitHub resources -- **Saloon**: Battle-tested HTTP client underneath - ## Requirements - PHP 8.2+ @@ -98,7 +87,7 @@ $issues->close('owner', 'repo', 123); Open issues on package repos. PRs welcome. -For enterprise support: jordan@partridge.rocks +Enterprise support: jordan@partridge.rocks ## License