diff --git a/.github/workflows/project-status.yml b/.github/workflows/project-status.yml new file mode 100644 index 0000000..f7d8cfc --- /dev/null +++ b/.github/workflows/project-status.yml @@ -0,0 +1,22 @@ +name: 📋 Project status + +on: + workflow_dispatch: # Manual + push: + branches: [main] + paths: ['status.json'] + schedule: + # Saturday 07:00 AEST (08:00 AEDT over summer) — lands before the weekend + # so there's time to act on it. + - cron: '0 21 * * 5' + +jobs: + status: + uses: privacykey/gh-workflows/.github/workflows/project-status.yml@v1 + with: + target: profile/README.md + collapsed: false + secrets: + # Read-only, scoped to adamXbot alone. Without it the drift check is + # skipped and says so, rather than reporting private repos as healthy. + status-token: ${{ secrets.STATUS_TOKEN }} diff --git a/STATUS.md b/STATUS.md new file mode 100644 index 0000000..3e65ddf --- /dev/null +++ b/STATUS.md @@ -0,0 +1,106 @@ +# Project status + +What I promise for each adamXbot project, and what I don't. Every repo's +status badge links here. + +**Tiers last reviewed: 2026-08-08.** Set by hand — it's when I last actually +looked, not when a script last ran. + +| Tier | What it means | +| --- | --- | +| 🟢 **Active** | I'm in this most weeks. Features are landing, so expect breaking changes between releases — read the changelog before you upgrade. I read issues and generally act on them quickly. | +| 🚧 **Building** | Being built. Nothing is released, nothing is supported, and it can change shape or disappear without notice. Don't build on it — watch the repo if you want to know when it ships. | +| 🛡️ **Maintained** | I'm not adding features here. It still gets security patches, dependency bumps and fixes for anything that breaks. Safe to depend on for exactly what it does today. | +| 📦 **Parked** | Finished or paused. It does what the README says and I left it working, but nothing is watching it, so it could rot quietly. I'll answer a question. I'm not promising a fix or a release. | +| ⚠️ **Unmaintained** | I'm not watching this one. Something it advertises may already be broken, and bugs won't be fixed on a schedule. Read it, fork it, vendor it — this says nothing about whether the code is any good. | +| 🍴 **Fork** | Not my project and not maintained by me. The canonical version is upstream — go there for issues, releases and support. | + +Private and pre-announcement projects aren't listed here. + +--- + +## apps + +### restauranteer + +🟢 **Active** — shipping now; installable today and still gaining capability + +I'm in this most weeks. Features are landing, so expect breaking changes between releases — read the changelog before you upgrade. I read issues and generally act on them quickly. + + + +### OmegaQuiz + +🛡️ **Maintained** — feature-complete; kept working and patched, not grown + +I'm not adding features here. It still gets security patches, dependency bumps and fixes for anything that breaks. Safe to depend on for exactly what it does today. + + + +## tools & utilities + +### ClaudeWatch + +🚧 **Building** — under construction; nothing released, nothing promised + +Being built. Nothing is released, nothing is supported, and it can change shape or disappear without notice. Don't build on it — watch the repo if you want to know when it ships. + + + +### BananaBlitz + +🛡️ **Maintained** — feature-complete; kept working and patched, not grown + +I'm not adding features here. It still gets security patches, dependency bumps and fixes for anything that breaks. Safe to depend on for exactly what it does today. + +Feature-frozen since 2026-04-30; hardening and security only. + + + +### AUcoverage + +📦 **Parked** — done or paused; it works, nothing is watching it + +Finished or paused. It does what the README says and I left it working, but nothing is watching it, so it could rot quietly. I'll answer a question. I'm not promising a fix or a release. + + + +### CyberThing-Trustmark + +📦 **Parked** — done or paused; it works, nothing is watching it + +Finished or paused. It does what the README says and I left it working, but nothing is watching it, so it could rot quietly. I'll answer a question. I'm not promising a fix or a release. + + + +### wwav + +📦 **Parked** — done or paused; it works, nothing is watching it + +Finished or paused. It does what the README says and I left it working, but nothing is watching it, so it could rot quietly. I'll answer a question. I'm not promising a fix or a release. + +Its only release is a draft — publish it and this becomes Maintained. + + + +### trmnl-ptv + +⚠️ **Unmaintained** — I'm not watching this one + +I'm not watching this one. Something it advertises may already be broken, and bugs won't be fixed on a schedule. Read it, fork it, vendor it — this says nothing about whether the code is any good. + +Scheduled publish job failing; the data branch the plugin reads is going stale. + + + +## shared infrastructure + +### homebrew-tap + +⚠️ **Unmaintained** — I'm not watching this one + +I'm not watching this one. Something it advertises may already be broken, and bugs won't be fixed on a schedule. Read it, fork it, vendor it — this says nothing about whether the code is any good. + +Cask serves BananaBlitz 0.0.2 against a v0.0.3 release. Bump it and this returns to Maintained. + + diff --git a/badges/AUcoverage.json b/badges/AUcoverage.json new file mode 100644 index 0000000..e096418 --- /dev/null +++ b/badges/AUcoverage.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Parked", + "color": "8b949e", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/BananaBlitz.json b/badges/BananaBlitz.json new file mode 100644 index 0000000..f78ece0 --- /dev/null +++ b/badges/BananaBlitz.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Maintained", + "color": "1f6feb", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/ClaudeWatch.json b/badges/ClaudeWatch.json new file mode 100644 index 0000000..0e8725f --- /dev/null +++ b/badges/ClaudeWatch.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Building", + "color": "8250df", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/CyberThing-Trustmark.json b/badges/CyberThing-Trustmark.json new file mode 100644 index 0000000..e096418 --- /dev/null +++ b/badges/CyberThing-Trustmark.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Parked", + "color": "8b949e", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/OmegaQuiz.json b/badges/OmegaQuiz.json new file mode 100644 index 0000000..f78ece0 --- /dev/null +++ b/badges/OmegaQuiz.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Maintained", + "color": "1f6feb", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/homebrew-tap.json b/badges/homebrew-tap.json new file mode 100644 index 0000000..8085532 --- /dev/null +++ b/badges/homebrew-tap.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Unmaintained", + "color": "d29922", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/restauranteer.json b/badges/restauranteer.json new file mode 100644 index 0000000..f0f55cf --- /dev/null +++ b/badges/restauranteer.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Active", + "color": "2ea043", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/trmnl-ptv.json b/badges/trmnl-ptv.json new file mode 100644 index 0000000..8085532 --- /dev/null +++ b/badges/trmnl-ptv.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Unmaintained", + "color": "d29922", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/badges/wwav.json b/badges/wwav.json new file mode 100644 index 0000000..e096418 --- /dev/null +++ b/badges/wwav.json @@ -0,0 +1,8 @@ +{ + "schemaVersion": 1, + "label": "status", + "message": "Parked", + "color": "8b949e", + "style": "flat", + "cacheSeconds": 3600 +} diff --git a/profile/README.md b/profile/README.md index a472088..fa016f8 100644 --- a/profile/README.md +++ b/profile/README.md @@ -2,14 +2,46 @@ Project account for [@AdamXweb](https://github.com/AdamXweb) — apps, utilities, and experiments. + ## Projects -- [**restauranteer**](https://github.com/adamXbot/restauranteer) — pocket restaurant journal as a self-hosted PWA; imports from Google, TikTok, Instagram, and any URL into markdown files you own. -- [**ClaudeWatch**](https://github.com/adamXbot/ClaudeWatch) — menu-bar history of the system-touching actions Claude Code runs on your machine. -- [**wwav**](https://github.com/adamXbot/wwav) — convert WAV audio to Wwise `.wem` (and back) without proprietary software. -- [**BananaBlitz**](https://github.com/adamXbot/BananaBlitz) — macOS utility to periodically clean telemetry from your device. -- [**OmegaQuiz**](https://github.com/adamXbot/OmegaQuiz) — open-source quiz tool for engaging presentations. -- [**AUcoverage**](https://github.com/adamXbot/AUcoverage) — unofficial Aussie mobile coverage checker. -- [**homebrew-tap**](https://github.com/adamXbot/homebrew-tap) — Homebrew tap for the macOS apps here. +What I promise for every adamXbot project, and what I don't. Reviewed 2026-08-08. + +Each badge links to the full promise. Private and pre-announcement projects aren't listed. + +| | Tier | What it means | +| - | - | - | +| 🟢 | **Active** | shipping now; installable today and still gaining capability | +| 🚧 | **Building** | under construction; nothing released, nothing promised | +| 🛡️ | **Maintained** | feature-complete; kept working and patched, not grown | +| 📦 | **Parked** | done or paused; it works, nothing is watching it | +| ⚠️ | **Unmaintained** | I'm not watching this one | + +**apps** + +| Project | Status | | +| - | - | - | +| [restauranteer](https://github.com/adamXbot/restauranteer) | 🟢 Active | | +| [OmegaQuiz](https://github.com/adamXbot/OmegaQuiz) | 🛡️ Maintained | | + +**tools & utilities** + +| Project | Status | | +| - | - | - | +| [ClaudeWatch](https://github.com/adamXbot/ClaudeWatch) | 🚧 Building | | +| [BananaBlitz](https://github.com/adamXbot/BananaBlitz) | 🛡️ Maintained | | +| [AUcoverage](https://github.com/adamXbot/AUcoverage) | 📦 Parked | | +| [CyberThing-Trustmark](https://github.com/adamXbot/CyberThing-Trustmark) | 📦 Parked | | +| [wwav](https://github.com/adamXbot/wwav) | 📦 Parked | | +| [trmnl-ptv](https://github.com/adamXbot/trmnl-ptv) | ⚠️ Unmaintained | | + +**shared infrastructure** + +| Project | Status | | +| - | - | - | +| [homebrew-tap](https://github.com/adamXbot/homebrew-tap) | ⚠️ Unmaintained | | + +See [STATUS.md](STATUS.md) for what each tier promises. + More at [adam.kostarelas.com](https://adam.kostarelas.com). diff --git a/status.json b/status.json new file mode 100644 index 0000000..5eca708 --- /dev/null +++ b/status.json @@ -0,0 +1,170 @@ +{ + "owner": "adamXbot", + "reviewed": "2026-08-08", + "repos": { + "restauranteer": { + "tier": "Active", + "group": "apps", + "public": true, + "listed": true, + "distribution": "open-source" + }, + "restauranteer-ios": { + "tier": "Building", + "group": "apps", + "public": false, + "listed": false, + "distribution": "private" + }, + "BananaBlitz": { + "tier": "Maintained", + "group": "tools", + "public": true, + "listed": true, + "distribution": "open-source", + "note": "Feature-frozen since 2026-04-30; hardening and security only." + }, + "OmegaQuiz": { + "tier": "Maintained", + "group": "apps", + "public": true, + "listed": true, + "distribution": "open-source" + }, + "ClaudeWatch": { + "tier": "Building", + "group": "tools", + "public": true, + "listed": true, + "distribution": "open-source" + }, + "wwav": { + "tier": "Parked", + "group": "tools", + "public": true, + "listed": true, + "distribution": "open-source", + "note": "Its only release is a draft — publish it and this becomes Maintained." + }, + "AUcoverage": { + "tier": "Parked", + "group": "tools", + "public": true, + "listed": true, + "distribution": "open-source" + }, + "CyberThing-Trustmark": { + "tier": "Parked", + "group": "tools", + "public": true, + "listed": true, + "distribution": "open-source" + }, + "trmnl-ptv": { + "tier": "Unmaintained", + "group": "tools", + "public": true, + "listed": true, + "distribution": "open-source", + "note": "Scheduled publish job failing; the data branch the plugin reads is going stale." + }, + "homebrew-tap": { + "tier": "Unmaintained", + "group": "infra", + "public": true, + "listed": true, + "distribution": "open-source", + "note": "Cask serves BananaBlitz 0.0.2 against a v0.0.3 release. Bump it and this returns to Maintained." + }, + ".github": { + "tier": "Maintained", + "group": "infra", + "public": true, + "listed": false, + "distribution": "open-source" + }, + "lyrebird": { + "tier": "Building", + "group": "apps", + "public": false, + "listed": false, + "distribution": "private" + }, + "stickerbook": { + "tier": "Building", + "group": "apps", + "public": false, + "listed": false, + "distribution": "public-pending" + }, + "FrameSplash": { + "tier": "Parked", + "group": "apps", + "public": false, + "listed": false, + "distribution": "public-pending" + }, + "orgorbari": { + "tier": "Building", + "group": "apps", + "public": false, + "listed": false, + "distribution": "appstore-closed" + }, + "akousa": { + "tier": "Parked", + "group": "apps", + "public": false, + "listed": false, + "distribution": "private" + }, + "Icing": { + "tier": "Parked", + "group": "apps", + "public": false, + "listed": false, + "distribution": "private" + }, + "beat-custom-music": { + "tier": "Parked", + "group": "tools", + "public": false, + "listed": false, + "distribution": "private" + }, + "nickandlidia": { + "tier": "Unmaintained", + "group": "sites", + "public": false, + "listed": false, + "distribution": "private" + }, + "gerakona": { + "tier": "Fork", + "group": "archive", + "public": false, + "listed": false, + "distribution": "private", + "canonical": "https://github.com/AdamXweb/gerakona", + "note": "Content duplicate of AdamXweb/gerakona, not a GitHub fork." + }, + "DockerDance-fork": { + "tier": "Fork", + "group": "archive", + "public": true, + "listed": false, + "distribution": "open-source", + "canonical": "https://github.com/AdamXweb/DockerDance", + "note": "Slated for deletion — verified that nothing unique remains." + }, + "privacykey-dotgithub": { + "tier": "Fork", + "group": "archive", + "public": true, + "listed": false, + "distribution": "open-source", + "canonical": "https://github.com/privacykey/.github", + "note": "Wrong org, serves no purpose. Candidate for deletion." + } + } +}