Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .github/workflows/canon.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: canon

on:
push:
pull_request:

jobs:
canon:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Verify no retired pricing or program framing on public surfaces
run: bash scripts/check-canon.sh
1 change: 0 additions & 1 deletion FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
github: []
ko_fi: upstream
custom:
- "https://upstream.cx/pioneer"
- "https://upstream.cx/pricing"
- "https://upstream.cx/newsletter"
8 changes: 4 additions & 4 deletions profile/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@ Upstream reads payer behavior at the source, briefs the operator on what it mean

## Public repos in this org

- `upstream-mcp` Upstream MCP server, exposing Care Intelligence as Model Context Protocol tools
- `upstream-skills` reusable Claude / agent skills for healthcare workflows
- `upstream-community` discussions, ideas, and operator-led knowledge
- `awesome-payer-risk` curated list of payer behavior tracking, denial intelligence, and care ops tooling
- `upstream-mcp` - Upstream MCP server, exposing Care Intelligence as Model Context Protocol tools
- `upstream-skills` - reusable Claude / agent skills for healthcare workflows
- `upstream-community` - discussions, ideas, and operator-led knowledge
- `awesome-payer-risk` - curated list of payer behavior tracking, denial intelligence, and care ops tooling

The core platform repo and the synthetic data SDK are private at this time.

Expand Down
38 changes: 38 additions & 0 deletions scripts/check-canon.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
# Canon guard for the public org profile (github.com/Upstream-Intelligence).
#
# profile/README.md + FUNDING.yml are the most public surface in the ecosystem.
# They drifted unguarded for a month and still advertised the RETIRED Founding
# Pioneer program ($49/mo locked for life) and the old pack-led positioning until
# the 2026-06-17 reground. This guard bans that retired framing so the public face
# cannot silently drift again.
#
# Current canon source: upstream-v2/marketing/src/lib/site.ts
# Tiers = Assist (free) / Pay as you go (from $18) / Co-pilot / Autopilot.
# ONE connected platform. No packs, no verticals, no Pioneer.
# Mirrors the sibling repos' scripts/check-canon.sh.
set -euo pipefail

ROOT="$(cd "$(dirname "$0")/.." && pwd)"

# Retired program + pricing + pack framing. Case-insensitive.
PATTERN='pioneer|founding 5|founding pioneer|locked for life|\$49|\$349|specialty pack|/pioneer'

# Scan the whole repo: profile/README.md + FUNDING.yml drifted, but BRAND.md,
# SECURITY.md, SUPPORT.md, CONTRIBUTING.md and the other org-default files are
# public surfaces too and were unguarded. Exclude this script (it holds the list).
hits="$(grep -rIniE "$PATTERN" "$ROOT" \
--exclude-dir=.git \
--exclude-dir=node_modules \
--exclude="check-canon.sh" 2>/dev/null || true)"

if [ -n "$hits" ]; then
echo "FAIL: retired Pioneer / pricing / pack framing on a public surface:" >&2
echo "$hits" >&2
echo "" >&2
echo "Current canon: Assist (free) / Pay as you go / Co-pilot / Autopilot. ONE platform, no packs." >&2
echo "Source of truth: upstream-v2/marketing/src/lib/site.ts" >&2
exit 1
fi

echo "canon OK: no retired Pioneer / pricing / pack framing on the public profile"
Loading