Skip to content

Commit 42071dc

Browse files
ccross2claude
andcommitted
add legal page, update CMO to hybrid manual-review mode
Legal page at /legal — combined privacy policy and terms of service. Zero data collection philosophy: no analytics, no cookies, no tracking. Required by X Developer Console for app registration. CMO pipeline updated from roots-only to hybrid model: root posts auto-scheduled, reply/quote candidates generated for manual review and manual execution only. Updated operating policy, implementation plan (D4 revised), and README. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 6e9f491 commit 42071dc

File tree

6 files changed

+190
-13
lines changed

6 files changed

+190
-13
lines changed

ops/cmo-automation/README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,10 @@ What this does today
1515
6) Build execution report from approved actions (dry-run default)
1616

1717
Current mode
18-
- Scheduled root posts only. No automated replies or quotes.
18+
- Hybrid: root posts auto-scheduled, reply/quote candidates generated for manual review.
19+
- Root posts execute via cron (daily-post.js for @sovren_software) or manual x-cli.
20+
- Reply/quote candidates are generated and hydrated by the pipeline but never auto-executed.
21+
Review cmo-hydrated-queue.md, then run approved x-cli commands manually.
1922
- @mrhaven_agent was removed after X suspension for inauthentic behavior (2026-04-03).
2023
- API credentials are per-account (X_FOUNDER_* for @TheCesarCross, X_SOVREN_* for @sovren_software).
2124
- See reports/CMO-AUTOMATION-IMPLEMENTATION-PLAN.md Phase 7 for full decision log.

ops/cmo-automation/config/operating_policy.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,12 @@
99
"short_generic_reply_share_max_pct": 30
1010
},
1111
"automation": {
12-
"mode": "hybrid-autonomous",
13-
"founder_autonomy": "autonomous_with_posthoc_audit",
12+
"mode": "hybrid-manual-review",
13+
"execution_model": "roots_auto_replies_manual",
14+
"root_posts": "auto_scheduled",
15+
"reply_candidates": "generated_for_manual_review",
16+
"quote_candidates": "generated_for_manual_review",
17+
"live_execution": "never_automatic",
1418
"dry_run_default": true
1519
},
1620
"account_strategy": {

ops/cmo-automation/reports/CMO-AUTOMATION-IMPLEMENTATION-PLAN.md

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -216,14 +216,17 @@ D3. Per-account access tokens with unified app credentials
216216
- Expected benefit: eliminates single-token-for-all-accounts pattern that contributed to
217217
coordinated behavior detection. Each account's posting is independently authenticated.
218218

219-
D4. Scheduled roots only — no automated replies or quotes
219+
D4. Hybrid model — roots auto-scheduled, replies/quotes manual-review only
220220
- Rationale: the 13 consecutive 403 failures on quote attempts were the primary trigger
221-
signal. Reply/quote automation on accounts without organic conversation participation
222-
is inherently risky under X's authenticity rules.
223-
- Trade-off: reduced engagement volume and reach. No automated discovery of new audiences
224-
through reply threads.
225-
- Expected benefit: eliminates the engagement pattern that caused the suspension. Root-post
226-
scheduling is the safest automation mode under X's rules.
221+
signal. Fully automated reply/quote posting is too risky. But the pipeline's candidate
222+
generation and hydration are still valuable for surfacing engagement opportunities.
223+
Human-in-the-loop on all engagement actions eliminates the automation detection risk
224+
while preserving reach.
225+
- Trade-off: slower engagement cadence (manual review bottleneck). Founder must review
226+
cmo-hydrated-queue.md each cycle and run approved x-cli commands individually.
227+
- Expected benefit: maintains engagement volume at human quality. The founder is the
228+
circuit breaker — no risk of automated 403 cascades or template-fingerprinted replies.
229+
Free tier API limits (1,500 writes/month, 10K reads/month) are sufficient.
227230

228231
Implemented changes
229232
- secrets.env: removed dead mrhaven_agent credentials, added 7-variable per-account structure
@@ -250,9 +253,9 @@ Drawbacks and known limitations
250253
- The hydration layer still produces templated replies with "Specific to [keyword salad]"
251254
suffixes. This copy quality issue predates the restructure and needs a generator rewrite
252255
before reply automation could safely resume.
253-
- No circuit breaker in execute_approved_queue.py — if reply automation is re-enabled in
254-
the future, the script should abort after N consecutive failures to avoid triggering
255-
platform detection.
256+
- No circuit breaker in execute_approved_queue.py — manual execution mitigates this, but
257+
if automated execution is ever re-enabled, the script should abort after N consecutive
258+
failures to avoid triggering platform detection.
256259
- X Premium subscription on @mrhaven_agent must be cancelled manually (via App Store,
257260
Google Play, or X support depending on how it was purchased).
258261

@@ -262,3 +265,5 @@ Remaining work to fully complete this phase
262265
3. Update 4 GitHub Actions secrets in sovren-software repo settings
263266
4. Run direnv reload, then verify: x-cli -j user get TheCesarCross
264267
5. Cancel @mrhaven_agent X Premium subscription
268+
6. Fix "Specific to [keyword salad]" suffix in hydration generator — blocks reply quality
269+
7. Add quote eligibility preflight check before including candidates in hydrated queue

src/routes/+layout.svelte

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
<div class="footer-col">
5454
<span class="col-label">// COMPANY</span>
5555
<a href="/ecosystem">CODEX</a>
56+
<a href="/legal">LEGAL</a>
5657
<a href="mailto:hello@sovren.software">CONTACT</a>
5758
</div>
5859
<div class="footer-col">

src/routes/legal/+page.svelte

Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
<svelte:head>
2+
<title>Legal — Sovren Software</title>
3+
<meta name="description" content="Privacy policy and terms of service for Sovren Software. Zero data collection. No tracking. No telemetry." />
4+
<link rel="canonical" href="https://sovren.software/legal" />
5+
<meta property="og:title" content="Legal — Sovren Software" />
6+
<meta property="og:description" content="Privacy policy and terms of service. Zero data collection. No tracking." />
7+
<meta property="og:url" content="https://sovren.software/legal" />
8+
<meta name="twitter:title" content="Legal — Sovren Software" />
9+
<meta name="twitter:description" content="Privacy policy and terms of service. Zero data collection. No tracking." />
10+
</svelte:head>
11+
12+
<section class="legal-hero">
13+
<span class="category-rule">// LEGAL</span>
14+
<h1>PRIVACY &amp; TERMS.</h1>
15+
<p class="tagline">Last updated April 3, 2026</p>
16+
</section>
17+
18+
<section class="legal-content">
19+
20+
<div class="legal-block">
21+
<h2>// PRIVACY POLICY</h2>
22+
23+
<h3>The short version</h3>
24+
<p>We do not collect, store, process, sell, or share your personal data. There is no tracking. There is no telemetry. There are no analytics scripts on this website. There are no cookies.</p>
25+
26+
<h3>What we collect</h3>
27+
<p>Nothing. This website is a static site served via GitHub Pages and Cloudflare. We do not run analytics, pixel trackers, session recorders, or fingerprinting scripts. We do not use cookies. We do not embed third-party scripts that collect data on our behalf.</p>
28+
29+
<h3>Email collection</h3>
30+
<p>If you voluntarily submit your email address through our launch notification form, it is stored by Brevo (formerly Sendinblue), our email delivery provider, solely for the purpose of sending you the notification you requested. We do not share this list with anyone. You can unsubscribe at any time via the link in any email.</p>
31+
32+
<h3>Product philosophy</h3>
33+
<p>Our products are designed to operate entirely on hardware you own. Esver OS runs local inference with no cloud telemetry. Visage performs biometric authentication on-device with encrypted embeddings that never leave your machine. Mr. Haven operates through non-custodial smart contracts where you hold the keys. This privacy policy reflects the same principle applied to our website: your data stays with you because we never ask for it.</p>
34+
35+
<h3>Server logs</h3>
36+
<p>Our hosting providers (GitHub Pages, Cloudflare) may collect standard server access logs (IP address, timestamp, page requested) as part of their infrastructure. We do not access, analyze, or retain these logs. Refer to <a href="https://docs.github.com/en/site-policy/privacy-policies/github-general-privacy-statement" target="_blank" rel="noreferrer">GitHub's privacy statement</a> and <a href="https://www.cloudflare.com/privacypolicy/" target="_blank" rel="noreferrer">Cloudflare's privacy policy</a> for their respective data handling practices.</p>
37+
38+
<h3>Third-party services</h3>
39+
<p>This site does not use Google Analytics, Facebook Pixel, Hotjar, Intercom, or any equivalent. The only third-party integration is the Brevo email form, which loads only on the Esver OS page when you interact with it.</p>
40+
41+
<h3>Children</h3>
42+
<p>We do not knowingly collect data from anyone, including children under 13.</p>
43+
44+
<h3>Changes</h3>
45+
<p>If this policy changes, the "last updated" date at the top of this page will reflect it. We will not introduce tracking or data collection without updating this policy first.</p>
46+
47+
<h3>Contact</h3>
48+
<p>Questions about this policy: <a href="mailto:hello@sovren.software">hello@sovren.software</a></p>
49+
</div>
50+
51+
<div class="legal-rule"></div>
52+
53+
<div class="legal-block">
54+
<h2>// TERMS OF SERVICE</h2>
55+
56+
<h3>Acceptance</h3>
57+
<p>By accessing sovren.software, you agree to these terms. If you do not agree, do not use the site.</p>
58+
59+
<h3>What this site is</h3>
60+
<p>This is an informational website for Sovren Software and its products (Esver OS, Visage, Mr. Haven). Content is provided for informational purposes. Product specifications, timelines, and capabilities described on this site reflect current development status and may change.</p>
61+
62+
<h3>Intellectual property</h3>
63+
<p>All content, design, code, and branding on this site is the property of Sovren Software unless otherwise noted. The Sovren name, hexagonal knot mark, and product names (Esver, Visage) are trademarks of Sovren Software. Open-source components are governed by their respective licenses (MIT, Apache 2.0) as indicated in their repositories.</p>
64+
65+
<h3>No warranty</h3>
66+
<p>This site and its content are provided "as is" without warranty of any kind. We do not guarantee uninterrupted availability, accuracy of all content, or fitness for any particular purpose.</p>
67+
68+
<h3>Limitation of liability</h3>
69+
<p>Sovren Software is not liable for any damages arising from your use of this site or reliance on its content. This includes but is not limited to direct, indirect, incidental, or consequential damages.</p>
70+
71+
<h3>Product-specific terms</h3>
72+
<p>Individual products have their own terms. Mr. Haven smart contracts operate on Base L2 and are governed by their on-chain behavior. Esver OS is distributed under its own license. These product-level terms supersede this page where applicable.</p>
73+
74+
<h3>Governing law</h3>
75+
<p>These terms are governed by the laws of the State of Wyoming, United States.</p>
76+
77+
<h3>Contact</h3>
78+
<p>Questions about these terms: <a href="mailto:hello@sovren.software">hello@sovren.software</a></p>
79+
</div>
80+
81+
</section>
82+
83+
<style>
84+
.legal-hero {
85+
padding: var(--pad-hero);
86+
max-width: var(--max-w);
87+
margin: 0 auto;
88+
}
89+
90+
.category-rule {
91+
display: block;
92+
font-size: var(--fs-label-sm);
93+
letter-spacing: var(--ls-ultra);
94+
text-transform: uppercase;
95+
color: var(--text-muted);
96+
margin-bottom: var(--space-lg);
97+
}
98+
99+
.legal-hero h1 {
100+
font-size: clamp(2.5rem, 6vw, 5rem);
101+
font-weight: var(--fw-bold);
102+
line-height: var(--lh-tight);
103+
letter-spacing: var(--ls-tight);
104+
color: var(--text-primary);
105+
margin: 0;
106+
}
107+
108+
.tagline {
109+
font-size: var(--fs-body-sm);
110+
color: var(--text-secondary);
111+
margin-top: var(--space-md);
112+
}
113+
114+
.legal-content {
115+
padding: var(--pad-section);
116+
max-width: var(--max-w-prose);
117+
margin: 0 auto;
118+
}
119+
120+
.legal-block h2 {
121+
font-size: var(--fs-label-sm);
122+
letter-spacing: var(--ls-ultra);
123+
text-transform: uppercase;
124+
color: var(--text-muted);
125+
margin-bottom: var(--space-xl);
126+
padding-bottom: var(--space-sm);
127+
border-bottom: var(--panel-border);
128+
}
129+
130+
.legal-block h3 {
131+
font-size: var(--fs-body);
132+
font-weight: var(--fw-semibold);
133+
color: var(--text-primary);
134+
margin-top: var(--space-xl);
135+
margin-bottom: var(--space-sm);
136+
}
137+
138+
.legal-block p {
139+
font-size: var(--fs-body-sm);
140+
line-height: var(--lh-relaxed);
141+
color: var(--text-secondary);
142+
margin-bottom: var(--space-lg);
143+
}
144+
145+
.legal-block a {
146+
color: var(--accent);
147+
text-decoration: none;
148+
}
149+
150+
.legal-block a:hover {
151+
text-decoration: underline;
152+
}
153+
154+
.legal-rule {
155+
border-top: var(--panel-border);
156+
margin: var(--space-5xl) 0;
157+
}
158+
</style>

static/sitemap.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,10 @@
3030
<changefreq>monthly</changefreq>
3131
<priority>0.8</priority>
3232
</url>
33+
<url>
34+
<loc>https://sovren.software/legal</loc>
35+
<lastmod>2026-04-03</lastmod>
36+
<changefreq>yearly</changefreq>
37+
<priority>0.3</priority>
38+
</url>
3339
</urlset>

0 commit comments

Comments
 (0)