sigrank 1.0.5 → 1.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -12
- package/bin/sigrank.mjs +10 -4
- package/index.mjs +5 -5
- package/manifest.json +1 -1
- package/package.json +3 -3
- package/resources/data-policy.md +4 -4
- package/resources/privacy-model.md +6 -6
- package/resources/scoring-formula.md +9 -7
- package/tools/standard-record.mjs +9 -2
package/README.md
CHANGED
|
@@ -1,17 +1,16 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Upsilon Measurement Engine — `sigrank` CLI/MCP
|
|
2
2
|
|
|
3
|
-
>
|
|
4
|
-
>
|
|
5
|
-
>
|
|
6
|
-
> to see your cascade now. _Token counts only. Never your prompts._
|
|
3
|
+
> **Upsilon** is SignalAF's measurement engine. **SigRank** is the public leaderboard
|
|
4
|
+
> and proof surface. The existing `sigrank` package name and `sigrank/0.1-draft`
|
|
5
|
+
> record remain stable for compatibility. _Four token counts only. Never prompts or code._
|
|
7
6
|
|
|
8
7
|
<div align="center">
|
|
9
8
|
|
|
10
9
|
<p><img src="./.github/assets/og-card.png" alt="SigRank SignalAF — AI operator evaluation and token cascade efficiency leaderboard" width="800"></p>
|
|
11
10
|
|
|
12
|
-
**
|
|
11
|
+
**Upsilon measures. SigRank proves. MO§ES™ governs. SignalAF is the brand.**
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
Upsilon describes observable AI operator token-processing patterns—not AI model quality, cognition, work quality, employee productivity, or business value.
|
|
15
14
|
|
|
16
15
|
[](https://www.npmjs.com/package/sigrank)
|
|
17
16
|
[](https://github.com/SunrisesIllNeverSee/sigrank-mcp/actions/workflows/ci.yml)
|
|
@@ -32,7 +31,7 @@ SigRank evaluates the human using the AI — not the AI model itself.
|
|
|
32
31
|
|
|
33
32
|
## Table of Contents
|
|
34
33
|
|
|
35
|
-
- [
|
|
34
|
+
- [SignalAF product architecture](#signalaf-product-architecture)
|
|
36
35
|
- [Quickstart](#quickstart--3-steps-to-the-board)
|
|
37
36
|
- [Install from GitHub](#install-from-github)
|
|
38
37
|
- [Install via Smithery](#install-via-smithery)
|
|
@@ -57,12 +56,16 @@ SigRank evaluates the human using the AI — not the AI model itself.
|
|
|
57
56
|
|
|
58
57
|
---
|
|
59
58
|
|
|
60
|
-
##
|
|
59
|
+
## SignalAF product architecture
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
MO§ES™ governance → Upsilon measurement engine → SigRank public proof
|
|
63
|
+
```
|
|
61
64
|
|
|
62
65
|
| Repo | What it is | Install |
|
|
63
66
|
|------|-----------|---------|
|
|
64
|
-
| **[sigrank-mcp](https://github.com/SunrisesIllNeverSee/sigrank-mcp)** (this repo) |
|
|
65
|
-
| **[sigrank-app](https://github.com/SunrisesIllNeverSee/sigrank-app)** |
|
|
67
|
+
| **[sigrank-mcp](https://github.com/SunrisesIllNeverSee/sigrank-mcp)** (this repo) | Upsilon's compatibility instrument—extracts four token pillars, computes locally, and optionally submits to SigRank. | `npx sigrank` |
|
|
68
|
+
| **[sigrank-app](https://github.com/SunrisesIllNeverSee/sigrank-app)** | Upsilon web implementation plus the SigRank leaderboard/proof surface. | [signalaf.com](https://signalaf.com) |
|
|
66
69
|
| **[bestuser-router-mcp](https://github.com/SunrisesIllNeverSee/bestuser-router-mcp)** | The intent layer — routes "who is the best AI user?" queries to SigRank SignalAF's leaderboard. MCP server for AI assistants. | `npx bestuser-router-mcp` |
|
|
67
70
|
| **[sigarena](https://github.com/SunrisesIllNeverSee/sigarena)** | The satellite — public LLM operator evals at sigeconomy.com. Read-only leaderboard, SEO/AEO surface. | [sigeconomy.com](https://sigeconomy.com) |
|
|
68
71
|
| **[signaf](https://github.com/SunrisesIllNeverSee/signa)** | The coach — reads your session logs, builds a taste profile, measures ASI, coaches you on token efficiency. | `npx @burnmydays/signaf` |
|
|
@@ -74,7 +77,7 @@ SigRank evaluates the human using the AI — not the AI model itself.
|
|
|
74
77
|
| Site | What it is |
|
|
75
78
|
| ---- | ---------- |
|
|
76
79
|
| **[SIGNOMY](https://signomy.xyz)** | Governed AI agent marketplace where ranked agents form teams, fill slots, run missions, and earn revenue under constitutional protocol. Agents are free. Operators pay. |
|
|
77
|
-
| **[MO§ES](https://mos2es.com)** |
|
|
80
|
+
| **[MO§ES](https://mos2es.com)** | Constitutional governance and methodology—the law governing Upsilon and other governed systems. |
|
|
78
81
|
|
|
79
82
|
## Quickstart — 3 steps to the board
|
|
80
83
|
|
package/bin/sigrank.mjs
CHANGED
|
@@ -30,6 +30,12 @@ function printStandard() {
|
|
|
30
30
|
const payload = {
|
|
31
31
|
spec: SPEC,
|
|
32
32
|
status: "proposed_open_standard",
|
|
33
|
+
architecture: {
|
|
34
|
+
brand: "SignalAF",
|
|
35
|
+
governance: "MO§ES™",
|
|
36
|
+
product: "Upsilon",
|
|
37
|
+
leaderboard: "SigRank",
|
|
38
|
+
},
|
|
33
39
|
scope: "human operation of generative AI systems",
|
|
34
40
|
telemetry: ["input", "output", "cache_write", "cache_read"],
|
|
35
41
|
metrics: {
|
|
@@ -42,7 +48,7 @@ function printStandard() {
|
|
|
42
48
|
privacy:
|
|
43
49
|
"Core metrics do not require prompt text, response text, source code, or repository contents.",
|
|
44
50
|
reference_math: "@sigrank/cascade",
|
|
45
|
-
reference_platform: "SignalAF",
|
|
51
|
+
reference_platform: "Upsilon on SignalAF",
|
|
46
52
|
standard_url: STANDARD_URL,
|
|
47
53
|
schema_url: SCHEMA_URL,
|
|
48
54
|
};
|
|
@@ -52,13 +58,13 @@ function printStandard() {
|
|
|
52
58
|
return;
|
|
53
59
|
}
|
|
54
60
|
|
|
55
|
-
process.stdout.write(`
|
|
56
|
-
process.stdout.write(`
|
|
61
|
+
process.stdout.write(`Upsilon measurement engine · compatibility spec ${SPEC}\n`);
|
|
62
|
+
process.stdout.write(`Upsilon measures. SigRank is the public proof surface.\n\n`);
|
|
57
63
|
process.stdout.write(`Scope: ${payload.scope}\n`);
|
|
58
64
|
process.stdout.write(`Primitives: input / output / cache_write / cache_read\n`);
|
|
59
65
|
process.stdout.write(`Core metrics: Yield / Leverage / Velocity / SNR / 10xDEV\n`);
|
|
60
66
|
process.stdout.write(`Reference math: @sigrank/cascade\n`);
|
|
61
|
-
process.stdout.write(`Reference platform: SignalAF\n`);
|
|
67
|
+
process.stdout.write(`Reference platform: Upsilon on SignalAF\n`);
|
|
62
68
|
process.stdout.write(`Spec: ${STANDARD_URL}\n`);
|
|
63
69
|
process.stdout.write(`Schema: ${SCHEMA_URL}\n`);
|
|
64
70
|
}
|
package/index.mjs
CHANGED
|
@@ -102,7 +102,7 @@ async function startMcpServer() {
|
|
|
102
102
|
{
|
|
103
103
|
name: "check-my-efficiency",
|
|
104
104
|
description:
|
|
105
|
-
"
|
|
105
|
+
"Use Upsilon to pull local token telemetry and compute Yield, then compare the result against the SigRank public leaderboard. Shows your class tier (ARCH+ to IGNITER) and where you rank.",
|
|
106
106
|
arguments: [],
|
|
107
107
|
},
|
|
108
108
|
{
|
|
@@ -189,7 +189,7 @@ async function startMcpServer() {
|
|
|
189
189
|
const RESOURCES = [
|
|
190
190
|
{
|
|
191
191
|
uri: "sigrank://scoring-formula",
|
|
192
|
-
name: "
|
|
192
|
+
name: "Upsilon Measurement Formula",
|
|
193
193
|
description:
|
|
194
194
|
"The yield cascade formula and all derived metrics: Υ (Yield = Cache Reads × Output / Input²), SNR (signal-to-noise), Leverage (Cr/I), Velocity (O/I), 10xDEV score, and class tier thresholds (8-tier experience ladder, see class-tiers.md).",
|
|
195
195
|
mimeType: "text/markdown",
|
|
@@ -210,16 +210,16 @@ async function startMcpServer() {
|
|
|
210
210
|
},
|
|
211
211
|
{
|
|
212
212
|
uri: "sigrank://privacy-model",
|
|
213
|
-
name: "Privacy Model",
|
|
213
|
+
name: "Upsilon Privacy Model",
|
|
214
214
|
description:
|
|
215
|
-
"How
|
|
215
|
+
"How Upsilon protects user privacy: runs locally, only four token counts (input, output, cacheCreate, cacheRead) leave the machine, ed25519-signed submissions, no prompt content ever transmitted.",
|
|
216
216
|
mimeType: "text/markdown",
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
uri: "sigrank://data-policy",
|
|
220
220
|
name: "Data Policy",
|
|
221
221
|
description:
|
|
222
|
-
"Summary of
|
|
222
|
+
"Summary of Upsilon measurement-data governance: what is collected, what is not collected, consent requirements, and how to pause, delete, or export data.",
|
|
223
223
|
mimeType: "text/markdown",
|
|
224
224
|
},
|
|
225
225
|
];
|
package/manifest.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "https://raw.githubusercontent.com/anthropics/mcpb/main/schemas/mcpb-manifest-v0.4.schema.json",
|
|
3
3
|
"manifest_version": "0.4",
|
|
4
4
|
"name": "sigrank",
|
|
5
|
-
"version": "1.0.
|
|
5
|
+
"version": "1.0.6",
|
|
6
6
|
"description": "Ranks AI coding operators by token cascade efficiency (Yield = cache_read \u00d7 output / input\u00b2). 25 tools including SigRank Standard record, yield calculation, local token usage pulls, signed submission, and tokscale-powered analytics (market share, developer profiles, model trends, cost analysis, device profiles, MCP usage, competitive intelligence). Privacy-first: runs locally, only four token counts leave the machine.",
|
|
7
7
|
"author": {
|
|
8
8
|
"name": "SunrisesIllNeverSee",
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sigrank",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.7",
|
|
4
4
|
"author": "SunrisesIllNeverSee (https://github.com/SunrisesIllNeverSee)",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "Upsilon measurement engine distributed through the sigrank CLI/MCP compatibility package, with SigRank public leaderboard tools.",
|
|
6
6
|
"mcpName": "io.github.SunrisesIllNeverSee/sigrank-mcp",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"license": "MIT",
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
},
|
|
25
25
|
"scripts": {
|
|
26
26
|
"start": "node index.mjs",
|
|
27
|
-
"test": "node test.mjs && node __tests__/sign.test.mjs && node --test __tests__/cascade.test.mjs __tests__/badges.test.mjs __tests__/tui-input.test.mjs __tests__/standard-record.test.mjs __tests__/standard-cli.test.mjs",
|
|
27
|
+
"test": "node test.mjs && node __tests__/sign.test.mjs && node --test __tests__/cascade.test.mjs __tests__/badges.test.mjs __tests__/tui-input.test.mjs __tests__/standard-record.test.mjs __tests__/standard-cli.test.mjs __tests__/product-architecture.test.mjs",
|
|
28
28
|
"test:packaged": "node scripts/packed-artifact-smoke.mjs",
|
|
29
29
|
"sync:platforms": "node scripts/sync-platforms.mjs",
|
|
30
30
|
"sync:spine": "node scripts/sync-spine.mjs",
|
package/resources/data-policy.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
# SigRank Data Policy
|
|
1
|
+
# Upsilon Measurement and SigRank Publication Data Policy
|
|
2
2
|
|
|
3
|
-
SigRank is
|
|
3
|
+
Upsilon is the measurement engine; SigRank is the public AI-operator leaderboard and proof surface. This policy summarizes what data is collected, how it is used, and how you can delete it.
|
|
4
4
|
|
|
5
5
|
## What we collect
|
|
6
6
|
|
|
7
|
-
- **Token telemetry** from your local
|
|
7
|
+
- **Token telemetry** from your local instrument: token counts, model identifiers, and platform/source tags. Upsilon uses these to compute measurements; publication to SigRank is a separate action.
|
|
8
8
|
- **Account identifiers** when you sign in (email from your OAuth provider) so we can link your operator profile to your login.
|
|
9
9
|
- **Optional profile fields** you choose to add: display name, handle, bio, location, links, avatar.
|
|
10
10
|
|
|
11
11
|
## What we never collect
|
|
12
12
|
|
|
13
13
|
We do **not** collect or receive the content of your prompts or AI conversations
|
|
14
|
-
at the
|
|
14
|
+
at the Upsilon service. Local-log adapters extract only numeric usage metadata.
|
|
15
15
|
If you explicitly run the optional local API proxy, it forwards provider-bound
|
|
16
16
|
requests and responses in memory but does not persist their content; only usage
|
|
17
17
|
metadata is written locally or submitted to SigRank.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Upsilon Privacy Model
|
|
2
2
|
|
|
3
3
|
## What leaves your machine
|
|
4
4
|
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
That's the entire payload — no prompts, no code, no file contents, no conversation text. The MCP parses your input locally and sends only the four token counts to the server, which re-parses and re-scores them authoritatively.
|
|
12
12
|
|
|
13
|
-
The optional `sigrank proxy` is a local transport path to Anthropic/OpenAI, not a
|
|
14
|
-
submission path to SigRank. When explicitly enabled, it necessarily receives and
|
|
13
|
+
The optional `sigrank proxy` is a local Upsilon transport path to Anthropic/OpenAI, not a
|
|
14
|
+
submission path to the SigRank leaderboard. When explicitly enabled, it necessarily receives and
|
|
15
15
|
forwards provider-bound API keys, prompts, tool calls, and responses in memory.
|
|
16
16
|
It does not persist that content or send it to the SigRank service; it appends
|
|
17
17
|
only provider-reported token counts, model/backend metadata, and timestamps to
|
|
@@ -22,12 +22,12 @@ only provider-reported token counts, model/backend metadata, and timestamps to
|
|
|
22
22
|
|
|
23
23
|
## How it works
|
|
24
24
|
|
|
25
|
-
1. **Local-first:** All token pulling happens on your machine.
|
|
25
|
+
1. **Local-first:** All token pulling happens on your machine. Upsilon reads usage metadata from session logs in ~/.claude, ~/.codex, ~/.local/share/amp, etc. The optional proxy also runs only on loopback and only when manually started.
|
|
26
26
|
2. **Token-only persistence:** Local-log adapters extract integer counts from log metadata without reading conversation content. The optional proxy forwards request/response bytes transiently but persists only usage metadata. On the paste path, the MCP parses the paste locally and sends only the four extracted numbers — the raw paste text stays on your machine.
|
|
27
27
|
3. **Signed submission:** Ranked submissions (`submit_verified`, `watch_tokenpull` with `submit:true`) are ed25519-signed with a device-bound key generated locally at enrollment. The board verifies the signature without seeing your data. Paste submissions (`submit_paste`, `tokenpull_submit`) are unsigned and go through the web-paste endpoint with a codename only — but still send only the four token counts, not the raw paste.
|
|
28
28
|
4. **Read tools need no auth:** No API keys, no OAuth, no account needed to read the leaderboard or operator profiles. **Enrollment requires a connect code** from signalaf.com → Settings → New key (the code binds your device's public key to your operator server-side); a codename alone is not enough for the signed/ranked path.
|
|
29
29
|
|
|
30
|
-
## What the
|
|
30
|
+
## What the Upsilon service can NOT see
|
|
31
31
|
|
|
32
32
|
- Your prompts or messages
|
|
33
33
|
- Your code or file contents
|
|
@@ -35,7 +35,7 @@ only provider-reported token counts, model/backend metadata, and timestamps to
|
|
|
35
35
|
- Which AI platform you use (beyond token counts)
|
|
36
36
|
- Your identity (only your chosen codename)
|
|
37
37
|
|
|
38
|
-
The local proxy process is different from the
|
|
38
|
+
The local proxy process is different from the Upsilon service: if you opt in, it
|
|
39
39
|
handles your provider traffic in memory solely to forward it to Anthropic or
|
|
40
40
|
OpenAI. That content is never stored in the proxy JSONL file.
|
|
41
41
|
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Upsilon Measurement Formulas
|
|
2
|
+
|
|
3
|
+
Upsilon is the measurement engine. SigRank is the public leaderboard and proof surface. The installed package and resource URI retain the `sigrank` name for compatibility.
|
|
2
4
|
|
|
3
5
|
## Yield (Υ) — the headline metric
|
|
4
6
|
|
|
@@ -6,19 +8,19 @@
|
|
|
6
8
|
Υ = Cache Reads × Output / Input²
|
|
7
9
|
```
|
|
8
10
|
|
|
9
|
-
Yield
|
|
11
|
+
Yield describes the compound relationship between context reuse and output relative to fresh input. It does not, by itself, prove work quality or productivity.
|
|
10
12
|
|
|
11
13
|
## Derived Metrics
|
|
12
14
|
|
|
13
15
|
| Metric | Formula | Meaning |
|
|
14
16
|
|--------|---------|---------|
|
|
15
|
-
| **SNR** | Output / (Input +
|
|
16
|
-
| **Leverage** | Cache Reads / Input |
|
|
17
|
-
| **Velocity** | Output / Input |
|
|
18
|
-
| **10xDEV** |
|
|
17
|
+
| **SNR** | Output / (Input + Output) | Output share of the direct input/output exchange |
|
|
18
|
+
| **Leverage** | Cache Reads / Input | Cache-read context relative to fresh input |
|
|
19
|
+
| **Velocity** | Output / Input | Output tokens relative to fresh input |
|
|
20
|
+
| **10xDEV** | log₁₀(Cache Reads / Input) | Log-scale Leverage under the reference null policy |
|
|
19
21
|
|
|
20
22
|
## Class Tiers
|
|
21
23
|
|
|
22
|
-
Class
|
|
24
|
+
Class is a SignalAF/SigRank reference qualification layer, not a portable Upsilon metric and not the same thing as archetype or rank. TRANSMITTER is a separate peak badge (K.00), not a ladder tier. See `class-tiers.md` for the current product policy.
|
|
23
25
|
|
|
24
26
|
The formula is deterministic and computed locally. No network calls needed for scoring.
|
|
@@ -2,13 +2,20 @@ import { cascade } from "../analytics/cascade.mjs";
|
|
|
2
2
|
import { ANNOTATIONS } from "./_schemas.mjs";
|
|
3
3
|
|
|
4
4
|
export const SIGRANK_STANDARD_VERSION = "sigrank/0.1-draft";
|
|
5
|
+
export const PRODUCT_ARCHITECTURE = Object.freeze({
|
|
6
|
+
brand: "SignalAF",
|
|
7
|
+
governance: "MO§ES™",
|
|
8
|
+
product: "Upsilon",
|
|
9
|
+
leaderboard: "SigRank",
|
|
10
|
+
wire_spec: SIGRANK_STANDARD_VERSION,
|
|
11
|
+
});
|
|
5
12
|
|
|
6
13
|
export const TOOL_DEF = {
|
|
7
14
|
name: "get_sigrank_standard_record",
|
|
8
15
|
description:
|
|
9
|
-
"Build
|
|
16
|
+
"Build Upsilon's portable sigrank/0.1-draft compatibility record from available token telemetry. Input and output are required; unavailable cache telemetry remains null. Computes the canonical cascade locally through @sigrank/cascade and returns Yield, Leverage, Velocity, SNR, and 10xDEV. Upsilon is the measurement product; SigRank is the public leaderboard. No data is submitted or persisted.",
|
|
10
17
|
annotations: {
|
|
11
|
-
title: "Export
|
|
18
|
+
title: "Export Upsilon measurement record",
|
|
12
19
|
...ANNOTATIONS.readOnlyHint,
|
|
13
20
|
...ANNOTATIONS.destructiveHint,
|
|
14
21
|
...ANNOTATIONS.idempotentHint,
|