{"id":"00552cad-6e4b-42ae-aeef-a914acfe912f","shortId":"hcjTBU","kind":"skill","title":"dbos-python","tagline":"Guide for building reliable, fault-tolerant Python applications with DBOS durable workflows. Use when adding DBOS to existing Python code, creating workflows and steps, or using queues for concurrency control.","description":"# DBOS Python Best Practices\n\nGuide for building reliable, fault-tolerant Python applications with DBOS durable workflows.\n\n## When to Use\nReference these guidelines when:\n- Adding DBOS to existing Python code\n- Creating workflows and steps\n- Using queues for concurrency control\n- Implementing workflow communication (events, messages, streams)\n- Configuring and launching DBOS applications\n- Using DBOSClient from external applications\n- Testing DBOS applications\n\n## Rule Categories by Priority\n\n| Priority | Category | Impact | Prefix |\n|----------|----------|--------|--------|\n| 1 | Lifecycle | CRITICAL | `lifecycle-` |\n| 2 | Workflow | CRITICAL | `workflow-` |\n| 3 | Step | HIGH | `step-` |\n| 4 | Queue | HIGH | `queue-` |\n| 5 | Communication | MEDIUM | `comm-` |\n| 6 | Pattern | MEDIUM | `pattern-` |\n| 7 | Testing | LOW-MEDIUM | `test-` |\n| 8 | Client | MEDIUM | `client-` |\n| 9 | Advanced | LOW | `advanced-` |\n\n## Critical Rules\n\n### DBOS Configuration and Launch\n\nA DBOS application MUST configure and launch DBOS inside its main function:\n\n```python\nimport os\nfrom dbos import DBOS, DBOSConfig\n\n@DBOS.workflow()\ndef my_workflow():\n    pass\n\nif __name__ == \"__main__\":\n    config: DBOSConfig = {\n        \"name\": \"my-app\",\n        \"system_database_url\": os.environ.get(\"DBOS_SYSTEM_DATABASE_URL\"),\n    }\n    DBOS(config=config)\n    DBOS.launch()\n```\n\n### Workflow and Step Structure\n\nWorkflows are comprised of steps. Any function performing complex operations or accessing external services must be a step:\n\n```python\n@DBOS.step()\ndef call_external_api():\n    return requests.get(\"https://api.example.com\").json()\n\n@DBOS.workflow()\ndef my_workflow():\n    result = call_external_api()\n    return result\n```\n\n### Key Constraints\n\n- Do NOT call `DBOS.start_workflow` or `DBOS.recv` from a step\n- Do NOT use threads to start workflows - use `DBOS.start_workflow` or queues\n- Workflows MUST be deterministic - non-deterministic operations go in steps\n- Do NOT create/update global variables from workflows or steps\n\n## How to Use\n\nRead individual rule files for detailed explanations and examples:\n\n```\nreferences/lifecycle-config.md\nreferences/workflow-determinism.md\nreferences/queue-concurrency.md\n```\n\n## References\n\n- https://docs.dbos.dev/\n- https://github.com/dbos-inc/dbos-transact-py\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["dbos","python","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows"],"capabilities":["skill","source-sickn33","skill-dbos-python","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/dbos-python","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34831 github stars · SKILL.md body (2,619 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T06:51:01.745Z","embedding":null,"createdAt":"2026-04-18T21:35:45.335Z","updatedAt":"2026-04-24T06:51:01.745Z","lastSeenAt":"2026-04-24T06:51:01.745Z","tsv":"'/dbos-inc/dbos-transact-py':296 '1':101 '2':105 '3':109 '4':113 '5':117 '6':121 '7':125 '8':131 '9':135 'access':206 'ad':19,59 'advanc':136,138 'api':218,230 'api.example.com':221 'app':178 'applic':12,47,84,89,92,147 'ask':330 'best':37 'boundari':338 'build':6,41 'call':216,228,237 'categori':94,98 'clarif':332 'clear':305 'client':132,134 'code':24,64 'comm':120 'communic':76,118 'complex':203 'compris':197 'concurr':33,72 'config':173,188,189 'configur':80,142,149 'constraint':234 'control':34,73 'creat':25,65 'create/update':270 'criteria':341 'critic':103,107,139 'databas':180,185 'dbos':2,14,20,35,49,60,83,91,141,146,152,161,163,183,187 'dbos-python':1 'dbos.launch':190 'dbos.recv':241 'dbos.start':238,253 'dbos.step':214 'dbos.workflow':165,223 'dbosclient':86 'dbosconfig':164,174 'def':166,215,224 'describ':309 'detail':285 'determinist':260,263 'docs.dbos.dev':293 'durabl':15,50 'environ':321 'environment-specif':320 'event':77 'exampl':288 'exist':22,62 'expert':326 'explan':286 'extern':88,207,217,229 'fault':9,44 'fault-toler':8,43 'file':283 'function':156,201 'github.com':295 'github.com/dbos-inc/dbos-transact-py':294 'global':271 'go':265 'guid':4,39 'guidelin':57 'high':111,115 'impact':99 'implement':74 'import':158,162 'individu':281 'input':335 'insid':153 'json':222 'key':233 'launch':82,144,151 'lifecycl':102,104 'limit':297 'low':128,137 'low-medium':127 'main':155,172 'match':306 'medium':119,123,129,133 'messag':78 'miss':343 'must':148,209,258 'my-app':176 'name':171,175 'non':262 'non-determinist':261 'oper':204,264 'os':159 'os.environ.get':182 'output':315 'pass':169 'pattern':122,124 'perform':202 'permiss':336 'practic':38 'prefix':100 'prioriti':96,97 'python':3,11,23,36,46,63,157,213 'queue':31,70,114,116,256 'read':280 'refer':55,292 'references/lifecycle-config.md':289 'references/queue-concurrency.md':291 'references/workflow-determinism.md':290 'reliabl':7,42 'requests.get':220 'requir':334 'result':227,232 'return':219,231 'review':327 'rule':93,140,282 'safeti':337 'scope':308 'servic':208 'skill':300 'skill-dbos-python' 'source-sickn33' 'specif':322 'start':250 'step':28,68,110,112,193,199,212,244,267,276 'stop':328 'stream':79 'structur':194 'substitut':318 'success':340 'system':179,184 'task':304 'test':90,126,130,324 'thread':248 'toler':10,45 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':313 'url':181,186 'use':17,30,54,69,85,247,252,279,298 'valid':323 'variabl':272 'workflow':16,26,51,66,75,106,108,168,191,195,226,239,251,254,257,274","prices":[{"id":"9d844b5b-6c5c-434b-befb-9aaa9975ccb2","listingId":"00552cad-6e4b-42ae-aeef-a914acfe912f","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:35:45.335Z"}],"sources":[{"listingId":"00552cad-6e4b-42ae-aeef-a914acfe912f","source":"github","sourceId":"sickn33/antigravity-awesome-skills/dbos-python","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/dbos-python","isPrimary":false,"firstSeenAt":"2026-04-18T21:35:45.335Z","lastSeenAt":"2026-04-24T06:51:01.745Z"}],"details":{"listingId":"00552cad-6e4b-42ae-aeef-a914acfe912f","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"dbos-python","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34831,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"56714e269f301f33678d029fd7087cfe55fc9cc8","skill_md_path":"skills/dbos-python/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/dbos-python"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"dbos-python","description":"Guide for building reliable, fault-tolerant Python applications with DBOS durable workflows. Use when adding DBOS to existing Python code, creating workflows and steps, or using queues for concurrency control."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/dbos-python"},"updatedAt":"2026-04-24T06:51:01.745Z"}}