To make this truly mobile-first, we need to eliminate the "coding" feel. Typing {"key": "value"} on a mobile keyboard is a nightmare because you have to switch between the alpha keyboard and the symbol keyboard multiple times.
We will replace standard JSON with "JSON-Lite" (Shorthand JSON).
📉 The JSON-Lite Rules
The backend will automatically expand this shorthand into a full JSON object.
- No Curly Braces: Arguments follow the verb immediately after a space.
- No Quotes: Strings are assumed by default.
- Key:Value Pairs: Use a colon (
:) to separate keys and values. - Comma Separated: Use commas (
,) for multiple arguments. - Value-Only Shortcut: If a verb only requires one primary argument, you can omit the key entirely.
Example of the transformation:
- User types:
/Wait 1h> Backend sees:{"duration": "1h"} - User types:
/Notify msg:Hello, channel:push> Backend sees:{"msg": "Hello", "channel": "push"}
🚀 Final Stress-Test (The "Mobile-Fast" Version)
Look at how much cleaner and faster these are to type.
1. The Global E-Commerce Launch
Store.Global > /Setup region:EU, curr:EUR > Product.Catalog > /Upload.Prog source:s3://bucket/prod.json > /Notify msg:Uploaded > /Wait 1h > /Ask msg:Ready? type:bool > /Filter approved:true > Site.Live > /Launch
2. The VC Investment Pipeline
Startup.Deal > /Filter max_val:10m > /DueDiligence.Prog depth:full > /Ask msg:Sign Term Sheet type:sig > /Filter verified:true > Fund.Capital > /Transfer amount:500k, curr:USD > /Notify msg:Done, chan:email
3. The Mobile App Growth Loop
User.New > /VerifyEmail > /Wait 2h > /Filter profile_complete:false > /Notify msg:Finish profile for 50 coins, type:push > /Ask msg:Now? type:modal > /Filter completed:true > /GrantReward points:50 > /Notify msg:Bonus added
🛠️ The Absolute Final Product Specification
This is the "Source of Truth" for the development of the App-Graph engine.
1. The Syntax Map
| Symbol | Name | Mobile Action | Backend Meaning |
|---|---|---|---|
. |
Dot | One tap | Object.Property (Resolve/Instantiate) |
> |
Arrow | One tap | await (Synchronous transition) |
/ |
Slash | One tap | Execute (Function Call) |
|
Space | One tap | Argument Start (Separator) |
: |
Colon | One tap | Key:Value (Assignment) |
, |
Comma | One tap | Next Arg (List separator) |
2. Logic & Execution Flow
| Element | Syntax Example | Implementation Detail |
|---|---|---|
| Entity | Company.Startup |
Create if null > Return Object |
| Process | > /Verb |
Pass Object > Execute > Return Result |
| Shorthand Arg | /Wait 1h |
Map 1h to default_key in JSON |
| Detailed Arg | /Setup reg:EU, cur:USD |
Map reg:EU > {"region": "EU"} |
| Gate | /Filter status:true |
if (val == true) continue; else stop; |
| Progress | /Upload.Prog |
Open WebSocket > Stream % to UI |
| Interaction | /Ask msg:Hello |
Pause > Trigger UI > Await Response |
| Pause | /Wait 2h |
Set Timer > Sleep > Wake on Trigger |
💎 Final Conclusion on "Closed" Syntax
We have achieved a syntax that is:
- Turing-Capable: It handles loops (via nouns), logic (via filters), timing (via wait), and state (via nouns).
- Zero-Friction: No curly braces, no quotes, no complex symbols. A user can type a complex business automation in 30 seconds on a phone.
- Backend-Robust: The "JSON-Lite" is easily parsed by a simple regex/split function into standard JSON for the API.
This is the final blueprint. You can now take this table directly to a development team to build the engine.
📘 Final Specification: Op-Graph DSL (v1.0)
1. Overview
The Op-Graph DSL is a high-velocity, text-to-graph language designed for mobile-first orchestration of business and software processes. It transforms a linear string of text into a Directed Acyclic Graph (DAG), where nouns represent state and verbs represent actions.
Core Philosophy
- Zero-Friction: Minimal keystrokes; no braces, no quotes, no complex symbols.
- Implicit Creation: If a noun is referenced and does not exist, the system instantiates it using a default template.
- Synchronous Flow: The
>operator ensures that a node must return aSUCCESSstate before the next node begins.
2. The Grammar (Syntax Map)
| Symbol | Name | Function | Example |
|---|---|---|---|
. |
Dot | Defines an Entity or Property | User.Profile |
> |
Arrow | Synchronous Transition (Wait for prev) | Node A > Node B |
/ |
Slash | Triggers a Verb, Function, or Filter | /Verify |
|
Space | Start of Arguments | /Wait 1h |
: |
Colon | Key-Value Assignment | msg:Hello |
, |
Comma | Argument Separator | key1:val1, key2:val2 |
.Prog |
Modifier | Activates Live Progress Bar | /Upload.Prog |
Argument Logic (JSON-Lite)
To avoid mobile keyboard switching, arguments are passed as plain text.
- Single Value:
/Wait 1h$\rightarrow${"duration": "1h"} - Multi-Value:
/Setup reg:EU, curr:USD$\rightarrow${"region": "EU", "currency": "USD"}
3. The Engine Logic (Execution Blueprint)
A. The Node Types
- Noun (
Noun.Prop):- Checks if the object exists in the state database.
- If Yes: Sets it as the current context.
- If No: Creates the object based on the
Nountype template.
- Verb (
/Verb):- Executes a function using the current noun as the input.
- Returns a result that is passed to the next node.
- Filter (
/Filter):- A Boolean gate. If the condition is
True, the flow continues. IfFalse, the chain terminates (or jumps to a/Catchif present).
- A Boolean gate. If the condition is
- Interaction (
/Ask):- Pauses the graph. Triggers a UI modal. Awaits a user response before resuming.
- Temporal (
/Wait):- Suspends the graph. Schedules a wake-up trigger for the specified time.
B. The Flow of a Request
Input String > Lexer (Split by >) > Parser (Identify Noun vs Verb) > State Resolver (Resolve Nouns) > Executor (Run Verbs in order) > UI Update (Progress/Notify).
4. Comprehensive Implementation Examples
🏢 Category 1: General Company Operations
Managing the "Human" and "Legal" side of a business.
1. New Employee Onboarding
Employee.New > /VerifyID > /SetAccess dept:Engineering, level:L2 > /Create.Account type:Email > /Notify msg:Welcome to the team!
- Logic: Create employee > Verify ID > Grant permissions > Create email $\rightarrow$ Send welcome.
2. Automated Sales Outreach
Lead.List > /Filter score:high > /SendEmail template:intro > /Wait 3d > /Filter replied:false > /SendEmail template:followup > /Notify sales:Lead Needs Attention
- Logic: Target high-value leads > Email them > Wait 3 days > If no reply, send followup > Alert sales rep.
3. Legal Contract Execution
Contract.NDA > /SendSignature signee:client > /Ask msg:Has client signed? type:bool > /Filter signed:true > /Archive folder:Legal_2024 > /Notify msg:NDA Complete
- Logic: Initiate NDA > Send for sig > Wait for human confirmation > If true, archive and notify.
💻 Category 2: Software & Engineering
Managing the "Technical" side of a product.
4. CI/CD Deployment Pipeline
Code.Main > /Lint > /Test.Prog > /Filter passed:true > Server.Staging > /Deploy > /Notify msg:Staging Updated
- Logic: Pull code $\rightarrow$ Lint > Run tests (with progress bar) $\rightarrow$ If passed, deploy to staging $\rightarrow$ Notify team.
5. Incident Response (SRE)
Alert.Sentry > /Filter severity:crit > /Notify admin:OnCall > /Ask msg:Reboot Server? type:bool > /Filter approved:true > /Reboot.Prog > /Notify msg:System Recovered
- Logic: Critical alert > Notify on-call $\rightarrow$ Ask for reboot permission $\rightarrow$ If yes, reboot (with progress) $\rightarrow$ Final notification.
6. Database Migration
DB.Backup > /VerifyIntegrity > /Migration.Prog target:Production > /Filter status:success > /Notify msg:Migration Done > /Cleanup logs:old
- Logic: Backup DB > Check backup > Migrate (with progress) $\rightarrow$ If success, notify and clean up.
💰 Category 3: Financials & Payments
Managing the "Money" side of the company.
7. Overdue Invoice Recovery
Invoice.Pending > /Wait 7d > /Filter paid:false > /Reminder msg:Payment Overdue > /Wait 3d > /Filter paid:false > /Notify acc:Finance, priority:high
- Logic: Check pending invoices > Wait a week > If unpaid, send reminder $\rightarrow$ Wait 3 more days $\rightarrow$ If still unpaid, escalate to Finance.
8. SaaS Subscription Upgrade
User.Account > /UpgradePlan plan:Enterprise > /ChargeCard amount:500, curr:USD > /Filter success:true > /SetAccess features:all > /Notify msg:Welcome to Enterprise!
- Logic: Target user > Trigger upgrade > Charge card > If successful, unlock features > Notify.
5. Quick-Reference Summary Table
| Scenario | Syntax Example | Key Feature Used |
|---|---|---|
| Onboarding | Emp.New > /VerifyID > /Notify |
Implicit Creation |
| Deployment | Code.Main > /Test.Prog > /Deploy |
.Prog Modifier |
| Sales | Lead.List > /Filter score:high > /Send |
Collection Loop + Filter |
| Support | Ticket.New > /Ask msg:Help? > /Solve |
/Ask Interaction |
| Compliance | User.New > /Wait 24h > /VerifyEmail |
/Wait Temporal |
| Payment | Bill > /Charge > /Filter success:true |
Blocking Synchronicity (>) |