Aksoy Capital — AI Autonomy Policy (L0-L5)

Status: Active · Owner: Founder (Ali Aksoy) · Effective: 2026-05-06 Linked from: /about/methodology/#ai-policy Review cadence: Quarterly (next: 2026-08-06)


1. Why this document exists

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


2. Autonomy Ladder (L0 - L5)

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.


3. Channel-to-Level Mapping (current state, 2026-05-06)

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.


4. Required QA gates at L4

Every L4 artifact passes these checks before it is written to public_html/:

  1. Forbidden terms (src/content/qa.py:check_forbidden_terms) — blocks "buy", "sell", "hold", "recommend", "bullish", "bearish", "target price", "strong [buy/sell]", and Turkish equivalents.
  2. Numeric consistency (check_numeric_consistency, kb-todo #25) — flags the same ticker quoted at materially different prices in the same document (>1.5% drift).
  3. Attribution (check_attribution) — every analytical claim must either link to an external source or be accompanied by a "Sources:" label.
  4. Ticker whitelist (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.).
  5. HTML sanitizer (renderer._sanitize_headings) — strips trailing parentheticals from headings to prevent prompt-leakage artifacts.
  6. Crosslink budget (crosslinks.enrich_body_md) — at most 20 internal links per artifact, idempotent.
  7. Branded AI badge (kb-todo #67) — every report carries <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.


5. Retraction process (L4 mistake → public correction)

When a published L4 artifact contains a material error:

  1. Within 1 hour of detection: Replace the artifact's body with a "RETRACTED" notice that names what was wrong. URL stays the same to preserve search index continuity. Original content is moved to data/retracted/{slug}.json (not served).
  2. Within 24 hours: Publish a follow-up note in the next morning brief or close report acknowledging the retraction.
  3. Within 7 days: Update the QA gate(s) that should have caught the error. If no gate could plausibly catch it, write a new one.
  4. Quarterly: The retraction log is reviewed at the policy review (see §7).

Mechanism: scripts/retract_artifact.py {slug} — atomic move + notice insertion.


6. What would justify moving to L5? (Why we do not, today)

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.


7. Review cadence and ownership

Last review: 2026-05-06 (initial publication) Next review: 2026-08-06


8. Public commitments

We commit to:

  1. No L5 channel — until and unless we explicitly amend this document with a new effective date and an external announcement.
  2. Public retractions — every material correction is logged at /about/methodology/#retractions with date, slug, and what was wrong.
  3. Editor-in-chief identification — the founder (Ali Aksoy) is the named editorial owner for every L4 channel. AI-generated does not mean unowned.
  4. Disclosure on every artifact — every L4 publication carries the "Generated by Aksoy Capital Darwin AI" badge linking to this policy.
  5. No personalized advice — at any L level, we do not generate user-specific recommendations. Risk profile tools and watchlists are not L4 outputs; they are user-facing utilities with no AI-generated personalized text.

9. References


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.


← Back to methodology