Status: Active · Owner: Founder (Ali Aksoy) · Effective: 2026-05-06
Linked from: /about/methodology/#ai-policy
Review cadence: Quarterly (next: 2026-08-06)
Aksoy Capital publishes algorithmically-generated market research at scale. This is a high-trust, high-risk activity — readers may make financial decisions based on what we publish. Because the underlying production model (Aksoy Capital Darwin AI, a 5-layer evolutionary system + LLM context layer) operates without a human in the loop on every artifact, we need a clear, public commitment to how much autonomy the system has.
This policy: - Defines six discrete autonomy levels (L0-L5) - Maps every active publishing channel to its current level - Explicitly commits Aksoy Capital to stop at L4 for the foreseeable future - Specifies retraction, escalation, and review processes
| Level | Name | Human role | What the AI may do | Where used |
|---|---|---|---|---|
| L0 | Manual | Human writes everything | AI is not used | (none) |
| L1 | Assist | Human author | AI suggests phrasings, fixes grammar, summarizes drafts | (none today) |
| L2 | Co-author | Human approves every artifact | AI drafts; human edits and signs off before publish | (none today) |
| L3 | Reviewed batch | Human samples a percentage | AI drafts; human reviews a sample before batch publish | (none today) |
| L4 | Supervised autonomous | Human watches dashboards, retracts on signal | AI drafts, runs automated QA, publishes without human pre-review; human monitors output, can pause/retract any time | All current channels |
| L5 | Full autonomy | None | AI drafts, publishes, and self-modifies the publishing system | PROHIBITED — see §6 |
The line we will not cross: Aksoy Capital does not operate any L5 channel. The publishing pipeline cannot modify itself, change models, change schedules, or alter editorial policy without a human commit on the application repository. This is enforced by:
1. Every code change requires a git commit from the founder's keypair.
2. The publishing system has read-only access to model identifiers, prompts, and policy files at runtime.
3. No published artifact may include code that changes the publishing pipeline. The QA layer (src/content/qa.py) blocks any output containing executable shell, Python, or DDL fragments.
| Channel | Trigger | Cadence | Level | Notes |
|---|---|---|---|---|
| Morning Brief | systemd timer | Mon-Fri 07:50 ET | L4 | Pre-market summary; numeric QA + attribution + ticker whitelist gates |
| Close Report | systemd timer | Mon-Fri 17:50 ET | L4 | End-of-day wrap; same QA gates |
| Weekly Wrap | systemd timer | Fri 17:55 ET | L4 | Higher-token-budget synthesis (gpt-5-nano); same QA gates |
| Company Analysis | systemd timer | Mon-Fri 09:00 + 17:00 ET | L4 | S&P 500 rotation, ~50 weeks/cycle; whitelist + numeric QA + attribution required |
| Sector Analysis | systemd timer | Mon/Wed/Fri 20:00 ET | L4 | 85 sub-sectors, ~28 weeks/cycle |
| Glossary entries | timer + Batch API | 10/day, 13:00 ET | L4 | 1000-term plan, 3-tier publish protection (published flag + crosslinks filter + sitemap HTML check) |
Sector pillars (/sectors/<slug>/) |
manual + weekly cron | Sundays | L4 | Static, programmatic; rebuilt from analysis_universe_seed.json |
Stock pair compares (/compare/<a>-vs-<b>/) |
manual + weekly cron | Sundays | L4 | 100 popular pairs; data from yfinance, schema + disclaimer baked in |
| Telegram (@aksoycapital) | morning/close webhook | Mon-Fri | L4 | Mirrors morning + close reports; same QA gates |
No channel is L5. No channel auto-modifies its own prompts, models, or schedule. Schedule and policy changes require a code commit by the founder.
Every L4 artifact passes these checks before it is written to public_html/:
src/content/qa.py:check_forbidden_terms) — blocks "buy", "sell", "hold", "recommend", "bullish", "bearish", "target price", "strong [buy/sell]", and Turkish equivalents.check_numeric_consistency, kb-todo #25) — flags the same ticker quoted at materially different prices in the same document (>1.5% drift).check_attribution) — every analytical claim must either link to an external source or be accompanied by a "Sources:" label.check_ticker_whitelist) — uppercase tokens that look like tickers but aren't in the universe trigger a warning (with a 50+ word false-positive list: US, SEC, FOMC, Q1, etc.).renderer._sanitize_headings) — strips trailing parentheticals from headings to prevent prompt-leakage artifacts.crosslinks.enrich_body_md) — at most 20 internal links per artifact, idempotent.<div class="ai-badge">Generated by Aksoy Capital Darwin AI · 5-layer evolutionary system · Reviewed by automated QA</div>.If any gate fails, the artifact is not published — it is logged for human review.
When a published L4 artifact contains a material error:
data/retracted/{slug}.json (not served).Mechanism: scripts/retract_artifact.py {slug} — atomic move + notice insertion.
L5 means the system can change its own production rules without a human approving the change. This is currently a non-goal because:
If we ever revisit L5, it would require: a registered RIA entity, error-and-omissions insurance, a real-time human kill switch with sub-30-second reaction guarantee, and explicit user opt-in per artifact. This is a multi-quarter project, not a knob.
/admin/qa-dashboard — internal.)scripts/legal_review_reminder.sh (cron: 1st of every 3rd month, 09:00 TR).Last review: 2026-05-06 (initial publication) Next review: 2026-08-06
We commit to:
/about/methodology/#retractions with date, slug, and what was wrong.src/content/disclaimer.py — disclaimer + AI badge librarysrc/content/qa.py — forbidden terms, numeric, attribution, whitelist gatessrc/content/renderer.py — HTML report renderer (badge injection)src/content/publisher.py — Telegram + queue publishersrc/glossary/render.py — glossary entry renderergenerate_report.py — single CLI entry point for all L4 channelsscripts/legal_review_reminder.sh — quarterly review crondata/retracted/ — retraction archive (never served publicly)/about/methodology//cookies/, /privacy//terms/, /refund/This policy supersedes any contradictory statement in marketing copy. If there is a conflict between this document and a public page, this document wins until corrected. Conflicts are tracked in the quarterly review.