ZION — Autonomous Dev Agent System

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Gig

SALARY

$6/hour

HOURS PER WEEK

20

DATE UPDATED

Mar 28, 2026

JOB OVERVIEW

1. What You Are Building
An autonomous development agent system running on a dedicated VPS. The system consists of two components: EVA (the conversational interface) and ZION (the orchestration layer that directs Claude Code workers to execute development tasks).

I interact with EVA via ---------- and Telegram. EVA translates my requests into structured tasks and passes them to ZION. ZION assigns tasks to Claude Code workers. Workers execute and report back. EVA communicates results to me.

SCOPE
You are building EVA and ZION only. Claude Code is an existing tool you will install and wire up. You are not building any downstream applications — ZION will build those after handoff.



2. How It Works
Component
Role
EVA
Conversational AI interface. Listens on ---------- and Telegram. Translates my requests into structured task briefs. Passes briefs to ZION. Receives results and escalations from ZION. Communicates with me. Archives all conversations as .md files on the VPS.
ZION
Orchestrator. Receives briefs from EVA. Manages task queue. Assigns tasks to Claude Code workers in sequence. Halts on failure. Reports blockers back to EVA. That is all ZION does.
Claude Code workers
Execution layer. Called by ZION. Each worker performs one task. Returns output or failure to ZION.

COMMUNICATION RULE
ZION never contacts me directly. ZION never posts to ---------- . EVA is the only entity that communicates with me or posts to ---------- channels.



3. Non-Negotiables
You have latitude on implementation approach with two hard exceptions.

3.1 ZION is a pure orchestrator
ZION coordinates workers. ZION does not perform computation, transform data, validate business logic, repair errors, retry silently, or contain fallback logic. If ZION does any of these things it becomes unmaintainable. This is the most common mistake and it will not be accepted.

SIMPLE TEST
If ZION were removed from the system, no business logic should be lost. Only coordination is lost. If removing ZION breaks logic, ZION was doing too much.

3.2 Single responsibility workers
Each Claude Code worker does one thing. A worker that reads data is not the same worker that processes it. A worker that processes data is not the same worker that writes it. Single responsibility means a failure is always isolated to one worker. The blast radius never cascades.



4. EVA Specification
---------- listener — receives planning sessions and longer context tasks
Telegram bot — receives mobile messages, sends roadblock notifications and SOP alerts to me
• Generates structured task briefs and passes to ZION
• Receives escalations from ZION, attempts to resolve using known context before pinging me
• Posts project updates to correct ---------- channels — EVA only, never ZION
• Saves every conversation as a .md file to /opt/devagent/conversations/ with topic-based filename
• Manages the SOP decision engine (see Section 6)



5. ZION Specification
• Pure Python orchestrator — no n8n, no Zapier, no low-code tools
• Receives structured briefs from EVA
• Maintains independent task queue per project
• Calls Claude Code workers non-interactively in defined sequence
• Respects task dependencies — does not run step 3 before step 2 is complete
• Halts on worker failure — no silent retry, no self-repair
• Reports failure to EVA with enough context for EVA to escalate or resolve
• Returns deterministic exit state on completion



6. SOP Decision Engine
EVA manages a decision engine that learns my preferences over time and reduces how often I need to be interrupted.

• Every decision I make is logged as PENDING with vote count 1
• Same decision type resolved the same way — vote count increments
• Three consistent votes promotes the decision to a standing rule (SOP)
• On promotion EVA sends Telegram: “New SOP: [rule]. Reply REVOKE to cancel.”
• Conflicting resolution before 3 votes — votes reset, EVA sends Telegram: “Conflicting decisions on [type]. Reply ALWAYS, NEVER, or SKIP.”
• REVOKE command deletes any standing rule



7. Accounts & Credentials
Service
Requirement
Google Workspace
---------- — register all agent services under this email

Telegram
Bot
Created ---------- in .env only. Never hardcoded.
---------- Bot
New token for EVA. Separate from existing Profe bots.
Claude API
Key provided by me. Connected to Claude Code and EVA.
GitHub
New account under claude@ email. All code committed. I receive access on handoff.



8. VPS & Deployment
• IONOS VPS — 8 vCores, 16 GB RAM, 480 GB NVMe, Ubuntu
• New installation at /opt/devagent — isolated from everything else on the server
• EVA and ZION run as systemd services with auto-restart on failure
• Claude Code installed globally and callable non-interactively
• All credentials in .env files — nothing hardcoded

DO NOT TOUCH
/opt/openclaw — existing customer-facing bots. You have no authorization to access, read, or modify anything in this directory.



9. Acceptance Criteria
Item
Pass Condition
Claude Code
Installed globally, callable non-interactively by ZION, test task executes cleanly
ZION
Pure orchestrator, no business logic, single failure does not cascade, task queue works
EVA — ----------
Receives messages, generates briefs, passes to ZION, posts to correct channels
EVA — Telegram
Receives messages, sends notifications, REVOKE command works
SOP engine
3-vote promotion works, conflict detection fires, REVOKE deletes rule
Conversation archiving
Every conversation saved as .md with topic-based filename
Systemd services
Both services auto-restart, survive server reboot
End to end test
Task sent via Telegram flows EVA ? ZION ? Claude Code ? result back to EVA ? posted to ----------
Handoff document
All credentials, file paths, service commands, restart procedures documented



10. Before You Apply
Answer these two questions. They tell me whether you read this brief.

• In your own words: what is ZION's job and what is it explicitly not allowed to do?
• This build is pure Python on a Linux VPS. No low-code tools anywhere in EVA or ZION. Are you comfortable with that and what similar Python systems have you built?


Jaimi M. Saunders, PhD | Fidelis Consulting & Training LLC

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0015
Controller Execution Time ( Jobseekers / Job )  0.0143
Total Execution Time  0.0166
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,531,392 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/ZION-Autonomous-Dev-Agent-System-1612448
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0058 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1612448
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 839921
 LIMIT 1 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1612448
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-04-19',ej.date_added) duration_daysDATEDIFF('2026-04-19',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-04-19',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1612448' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1612448 
0.0020   UPDATE employer_jobs SET hit_counts '***Mar-28-2026=163***Mar-29-2026=40***Mar-30-2026=25***Mar-31-2026=90***Apr-01-2026=54***Apr-02-2026=5***Apr-03-2026=8***Apr-04-2026=3***Apr-05-2026=3***Apr-06-2026=1***Apr-07-2026=3***Apr-08-2026=3***Apr-09-2026=5***Apr-11-2026=2***Apr-12-2026=1***Apr-13-2026=3***Apr-15-2026=2***Apr-16-2026=2***Apr-17-2026=4***Apr-18-2026=1***Apr-19-2026=2' WHERE job_id'1612448'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Mar-2026=314***Apr-2026=102' WHERE job_id'1612448'  
0.0003   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1612448' AND status LIKE 'sent%' ORDER BY id DESC  
0.0002   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1612448 
0.0003   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '839921'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)