Help
RSS
API
Feed
Maltego
Contact
Domain > www.andai.pro
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2025-09-18
3.170.42.60
(
ClassC
)
2025-11-16
3.175.34.37
(
ClassC
)
Port 80
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 21003Connection: keep-aliveLast-Modified: Tue, 03 Jun 2025 11:46:04 GMTx-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3Date: Sun, 16 Nov 2025 07:51:30 GMTETag: 53932ec5773d5db5380924d9f466ff3dX-Cache: RefreshHit from cloudfrontVia: 1.1 592551d5faa08ddff89e731404b54008.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P3X-Amz-Cf-Id: PnM8_xyM7h5KjFrbcZWBwR4cOJnU8QeGjhKmNDmDmNbIgPUs5dQYgA !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0, user-scalableno> meta nameapple-mobile-web-app-capable contentyes> title>AndAI - Reliable AI Development Workflows/title> meta namedescription contentBuild consistent, reliable PRs with structured AI-assisted development. No ambiguity, no finger-crossing - just predictable results.> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/dark.min.css> script srchttps://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js>/script> script>hljs.highlightAll();/script> style> * { margin: 0; padding: 0; box-sizing: border-box; max-width: 100%; } html, body { overflow-x: hidden; width: 100%; font-family: SF Mono, Monaco, Cascadia Code, Roboto Mono, Consolas, Courier New, monospace; line-height: 1.6; color: #e4e4e7; background: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 50%, #16213e 100%); } .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; } /* Header */ header { padding: 2rem 0; border-bottom: 1px solid #333; } nav { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; } .logo { font-size: 1.8rem; font-weight: bold; color: #60a5fa; } .nav-links { display: flex; gap: 2rem; list-style: none; flex-wrap: wrap; } .nav-links a { color: #d1d5db; text-decoration: none; transition: color 0.3s; } .nav-links a:hover { color: #60a5fa; } /* Hero Section */ .hero { padding: 4rem 0; text-align: center; } .hero h1 { font-size: clamp(2.5rem, 5vw, 4rem); margin-bottom: 1rem; background: linear-gradient(45deg, #60a5fa, #a78bfa); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero .subtitle { font-size: clamp(1.2rem, 3vw, 1.5rem); margin-bottom: 2rem; color: #9ca3af; } .reality-check { background: #1f2937; border: 1px solid #374151; border-radius: 12px; padding: 2rem; margin: 3rem 0; text-align: left; } .reality-check h3 { color: #fbbf24; margin-bottom: 1rem; } /* Features Grid */ .features { padding: 2rem 0; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .feature-card { background: #1f2937; border: 1px solid #374151; border-radius: 12px; padding: 2rem; transition: transform 0.3s, border-color 0.3s; } .feature-card:hover { transform: translateY(-5px); border-color: #60a5fa; } .feature-card h3 { color: #60a5fa; margin-bottom: 1rem; } /* Workflow Section */ .workflow { padding: 4rem 0; background: #111827; } .workflow-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-top: 3rem; } .step { background: #1f2937; border-radius: 12px; padding: 2rem; border-left: 4px solid #60a5fa; } .step-number { background: #60a5fa; color: #000; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; margin-bottom: 1rem; } /* Configuration Examples */ .config-examples { padding: 4rem 0; } .config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 2rem; margin-top: 3rem; } .config-card { background: #0d1117; border: 1px solid #30363d; border-radius: 12px; overflow: hidden; } .config-header { background: #21262d; padding: 1rem; border-bottom: 1px solid #30363d; } .config-content { padding: 1.5rem; } pre { background: #161b22; padding: 1rem; border-radius: 8px; overflow-x: auto; font-size: 0.9rem; color: #e6edf3; } /* CTA Section */ .cta { padding: 4rem 0; text-align: center; background: linear-gradient(135deg, #1e293b, #334155); } .cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 2rem; } .btn { padding: 1rem 2rem; border-radius: 8px; text-decoration: none; font-weight: bold; transition: all 0.3s; border: none; cursor: pointer; font-size: 1rem; } .btn-primary { background: #60a5fa; color: #000; } .btn-primary:hover { background: #3b82f6; transform: translateY(-2px); } .btn-secondary { background: transparent; color: #60a5fa; border: 2px solid #60a5fa; } .btn-secondary:hover { background: #60a5fa; color: #000; } /* Mobile Responsive */ @media (max-width: 768px) { .container { padding: 0 15px; margin: 0; } .nav-links { gap: 1rem; } .hero { padding: 2rem 0; } .features-grid, .workflow-steps, .config-grid { grid-template-columns: 1fr; } .cta-buttons { flex-direction: column; align-items: center; } .btn { width: 100%; max-width: 300px; } } /style>/head>body> header> nav classcontainer> a hrefhttps://www.andai.pro styletext-decoration: none;>div classlogo>AndAI/div>/a> ul classnav-links> li>a href#features>Features/a>/li> li>a href#workflow>Workflow/a>/li> li>a hrefhttps://github.com/andrejsstepanovs/andai/tree/main/screenshots>Screenshots/a>/li> li>a hrefhttps://github.com/andrejsstepanovs/andai/tree/main/docs>Docs/a>/li> li>a hrefhttps://github.com/andrejsstepanovs/andai>GitHub/a>/li> /ul> /nav> /header> main> section classhero> div classcontainer> h1>Reliable AI Development Workflows/h1> p classsubtitle>No todo.md. No finger-crossing. No ambiguity.br>Just consistent, reliable PRs every time./p> div classreality-check> h3>🎯 Dreams vs Reality/h3> p>strong>The Dream:/strong> AI agent, please build my app → magic happens → perfect code/p> p>strong>The Reality:/strong> Coding agents are fun but too free-thinking for reliable, consistent results/p> p>strong>AndAIs Approach:/strong> Narrow scope, add guardrails, ensure predictable outcomes/p> /div> /div> /section> section idfeatures classfeatures> div classcontainer> h2>Why AndAI works where others dont/h2> div classfeatures-grid> div classfeature-card> h3>🔒 Guardrailed Execution/h3> p>Unlike free-thinking agents, AndAI constrains AI within defined boundaries. You know exactly whats being done, why, and when./p> /div> div classfeature-card> h3>🏗️ State-Driven Architecture/h3> p>Built with proper ticketing system as a state storage and state machine. Issue dependencies, issue types and sub-tasks, you know the drill. Ticketing system provides context and each task is a git branch./p> /div> div classfeature-card> h3>🛡️ Failure Handling/h3> p>Fails properly when needed, integrate failure path and add user in the middle. Because happy path isnt the only path./p> /div> div classfeature-card> h3>🔄 Washing Machine Mode/h3> p>Load your story tasks, let them crack away overnight using cheap tokens. Come to work for review sessions and prep for the next batch./p> /div> div classfeature-card> h3>🌐 Any Model Support/h3> p>Works with any AI model - cloud or local. You can even configure specific module for specific command step. Your choice./p> /div> div classfeature-card> h3>🔌 Local first/h3> p>Everything is configurable and running locally. Adjust workflow config, add projects and start creating tickets./p> /div> /div> /div> /section> section classworkflow> div classcontainer> h2>Go grab a coffee mode workflow/h2> p>AndAI u>is not/u> AI Agent or IDE integration. Instead it is long running process. A reliable one, because it is heavily wrapping AI with code. Pre process input, gather info and summarize, code, test, fix, auto review, evaluate - loopty loop. Reliability takes time. More expensive upfront? Yes. But with good workflow it always will spit out a code you asked for over and over again./p> div classworkflow-steps> div classstep> div classstep-number>1/div> h3>Define & Queue/h3> p>Prepare structured tickets with clear acceptance criteria. Move it from Init to Backlog./p> /div> div classstep> div classstep-number>2/div> h3>Isolated Processing/h3> p>AndAI picks ticket, moves it to next status and works in dedicated branch with pre-defined command steps./p> /div> div classstep> div classstep-number>3/div> h3>Quality Gates/h3> p>Validation code before any human review. Try to auto fix or move ticket to status where user will take over./p> /div> div classstep> div classstep-number>4/div> h3>Review & Deploy/h3> p>AndAI deployment command will merge branch into parent and move ticket to Done. Then pick next unblocked ticket./p> /div> /div> /div> /section> section idworkflow classconfig-examples> div classcontainer> h2>Configure Your Perfect Workflow/h2> p>From simple 2-step processes to complex multi-stage pipelines - AndAI adapts to your needs. Its all yaml./p> div classconfig-grid> div classconfig-card> div classconfig-header> h3>⚡ Full valid config/h3> /div> div classconfig-content> pre>code classlanguage-yaml>workflow: transitions: - { source: Init, target: Backlog } - { source: Backlog, target: In Progress } - { source: In Progress, target: QA } - { source: QA, target: Deployment, success: true } - { source: QA, target: Backlog, fail: true } - { source: Deployment, target: Done } issue_types: Story: description: | Represents a significant feature or component that requires multiple Tasks to implement. Scope: Entire feature or major component, potentially spanning multiple files and modules. jobs: Backlog: { steps: { command: next } } # -- Pick it up for work In Progress: # -- Start working steps: - { command: context-files, context: wiki, ticket, comments, remember: true } - command: summarize-task comment: True context: issue_types, project, wiki, parents, ticket, comments, children prompt: | Analyze all available information and prepare detailed improved current issue description. Suggest how to split current Story issue into smaller scope Task issues. Make sure each Task issue is small enough to be implemented in a single code file. - command: create-issues # -- Create sub-tasks, move to QA and stay there until theyre not Done action: Task prompt: Split current issue into Task issues. context: issue_types, project, wiki, parents, ticket, last-5-comments, children Deployment: { steps: { command: merge-into-parent } } Task: description: | A unit of work focused on coding task. Scope: Only one code file or specific part of it. jobs: Init: { steps: { command: next } } # -- Prio from Init (defined in priorities:) Backlog: { steps: { command: next } } In Progress: steps: - command: aider action: architect-code summarize: True comment-summary: False context: project, wiki, ticket, last-5-comments prompt: Implement (code) given Task issue based on ticket description and last comments. - { command: project-cmd, action: reformat } - { command: commit, prompt: linter changes } QA: steps: - { command: project-cmd, action: lint, remember: true } - { command: project-cmd, action: test, remember: true } - { command: context-files, context: ticket, last-3-comments, remember: true } - { command: context-commits, context: ticket, comments, parent-comments, remember: true } - command: ai prompt: | If there are any linter or test errors then pinpoint exact files and place at fault. If there are no errors then answer with Linter and tests are OK. remember: True - { command: evaluate, context: ticket, comments } Deployment: { steps: { command: merge-into-parent } } states: # -- Define ticket task states (statuses) and if AndAI will work there. Init: { ai: Task, is_first: true, is_default: true } Backlog: { ai: Story, Task, description: Issue is ready to be worked on. } In Progress: { ai: Story, Task, description: Analyze Issue and plan how to work on it. } QA: { ai: Task, description: Test Task issues and Human Test Story. } Deployment: { ai: Story, Task, description: Merge code into to parent Issue branch. } Done: { ai: , is_closed: true, description: Issue is completed. } priorities: - { type: Task, state: Deployment } - { type: Task, state: QA } - { type: Task, state: In Progress } - { type: Task, state: Backlog } - { type: Task, state: Init } - { type: Story, state: Deployment } - { type: Story, state: QA } - { type: Story, state: In Progress } - { type: Story, state: Backlog } - { type: Story, state: Init }projects: - identifier: andai name: Andai description: Golang project git_path: /andai/.git git_local_dir: /home/ubuntu/andai/.git final_branch: main commands: - { name: test, command: make, test, ignore_err: true, ignore_stdout_if_no_stderr: true } - { name: lint, command: make, run-lint, ignore_err: true, success_if_no_output: true } - { name: reformat, command: gofmt, -s, -w, ., ignore_err: true, success_if_no_output: true } wiki: Coding assistant. More text about the project here.redmine: db: redmine:redmine@tcp(localhost:3306)/redmine # things from docker-compose url: http://localhost:8080 api_key: 2159cef2fb6c82c4f66981f199798781e161c694 # chill, its not a secret that needs hiding repositories: /var/repositories/llm_models: - { name: normal, temperature: 0.2, model: gemini-2.5-pro, provider: custom, base_url: http://localhost:4000/v1/chat/completions, api_key: sk-1234 } - { name: large, commands: summarize-task, temperature: 0.5, model: gemini-2.5-flash, provider: custom, base_url: http://localhost:4000/v1/chat/completions, api_key: sk-1234 }coding_agents: aider: # -- other coding agents coming.. config: /home/ubuntu/www/aiwork/.andai.aider.yaml config_fallback: /home/ubuntu/www/aiwork/.andai.aider.fallback.yaml model_metadata_file: /home/ubuntu/www/aiwork/.andai.aider.model.json timeout: 180m map_tokens: 512 task_summary_prompt: | I need you to REFORMAT the technical information above into a structured developer task. DO NOT implement any technical solution - your role is ONLY to organize and present the information.# This is valid, but not fully tested. Please check out /docs/examples/ if you want something battle tested./code>/pre> /div> div classconfig-content> pre>code classlanguage-bash>$ andai validate configIs valid$ andai go /code> /pre> /div> /div> /div> /section> section classcta> div classcontainer> h2>Ready to Build Reliable AI Workflows?/h2> p>Stop crossing fingers. Start shipping predictable, quality code with AI assistance that actually works./p> div classcta-buttons> a hrefhttps://github.com/andrejsstepanovs/andai classbtn btn-primary>Get Started/a> a hrefhttps://github.com/andrejsstepanovs/andai/tree/main/docs classbtn btn-secondary>Read Docs/a> /div> /div> /section> /main>/body>/html>
Port 443
HTTP/1.1 200 OKContent-Type: text/htmlContent-Length: 21003Connection: keep-aliveLast-Modified: Tue, 03 Jun 2025 11:46:04 GMTx-amz-server-side-encryption: AES256Accept-Ranges: bytesServer: AmazonS3Date: Sun, 16 Nov 2025 07:51:30 GMTETag: 53932ec5773d5db5380924d9f466ff3dX-Cache: Hit from cloudfrontVia: 1.1 6eef5cc48e8050472c6d6d9862d365dc.cloudfront.net (CloudFront)X-Amz-Cf-Pop: HIO52-P3X-Amz-Cf-Id: u4B6JKO46DSRprUFnFHy-WH9CBnGxfX0vIYxuQqnjK3VrgeLdv1ReQ !DOCTYPE html>html langen>head> meta charsetUTF-8> meta nameviewport contentwidthdevice-width, initial-scale1.0, user-scalableno> meta nameapple-mobile-web-app-capable contentyes> title>AndAI - Reliable AI Development Workflows/title> meta namedescription contentBuild consistent, reliable PRs with structured AI-assisted development. No ambiguity, no finger-crossing - just predictable results.> link relstylesheet hrefhttps://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/styles/dark.min.css> script srchttps://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.11.1/highlight.min.js>/script> script>hljs.highlightAll();/script> style> * { margin: 0; padding: 0; box-sizing: border-box; max-width: 100%; } html, body { overflow-x: hidden; width: 100%; font-family: SF Mono, Monaco, Cascadia Code, Roboto Mono, Consolas, Courier New, monospace; line-height: 1.6; color: #e4e4e7; background: linear-gradient(135deg, #0f0f23 0%, #1a1a2e 50%, #16213e 100%); } .container { max-width: 1200px; margin: 0 auto; padding: 0 20px; } /* Header */ header { padding: 2rem 0; border-bottom: 1px solid #333; } nav { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; } .logo { font-size: 1.8rem; font-weight: bold; color: #60a5fa; } .nav-links { display: flex; gap: 2rem; list-style: none; flex-wrap: wrap; } .nav-links a { color: #d1d5db; text-decoration: none; transition: color 0.3s; } .nav-links a:hover { color: #60a5fa; } /* Hero Section */ .hero { padding: 4rem 0; text-align: center; } .hero h1 { font-size: clamp(2.5rem, 5vw, 4rem); margin-bottom: 1rem; background: linear-gradient(45deg, #60a5fa, #a78bfa); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; } .hero .subtitle { font-size: clamp(1.2rem, 3vw, 1.5rem); margin-bottom: 2rem; color: #9ca3af; } .reality-check { background: #1f2937; border: 1px solid #374151; border-radius: 12px; padding: 2rem; margin: 3rem 0; text-align: left; } .reality-check h3 { color: #fbbf24; margin-bottom: 1rem; } /* Features Grid */ .features { padding: 2rem 0; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; } .feature-card { background: #1f2937; border: 1px solid #374151; border-radius: 12px; padding: 2rem; transition: transform 0.3s, border-color 0.3s; } .feature-card:hover { transform: translateY(-5px); border-color: #60a5fa; } .feature-card h3 { color: #60a5fa; margin-bottom: 1rem; } /* Workflow Section */ .workflow { padding: 4rem 0; background: #111827; } .workflow-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; margin-top: 3rem; } .step { background: #1f2937; border-radius: 12px; padding: 2rem; border-left: 4px solid #60a5fa; } .step-number { background: #60a5fa; color: #000; width: 30px; height: 30px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-weight: bold; margin-bottom: 1rem; } /* Configuration Examples */ .config-examples { padding: 4rem 0; } .config-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(400px, 1fr)); gap: 2rem; margin-top: 3rem; } .config-card { background: #0d1117; border: 1px solid #30363d; border-radius: 12px; overflow: hidden; } .config-header { background: #21262d; padding: 1rem; border-bottom: 1px solid #30363d; } .config-content { padding: 1.5rem; } pre { background: #161b22; padding: 1rem; border-radius: 8px; overflow-x: auto; font-size: 0.9rem; color: #e6edf3; } /* CTA Section */ .cta { padding: 4rem 0; text-align: center; background: linear-gradient(135deg, #1e293b, #334155); } .cta-buttons { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-top: 2rem; } .btn { padding: 1rem 2rem; border-radius: 8px; text-decoration: none; font-weight: bold; transition: all 0.3s; border: none; cursor: pointer; font-size: 1rem; } .btn-primary { background: #60a5fa; color: #000; } .btn-primary:hover { background: #3b82f6; transform: translateY(-2px); } .btn-secondary { background: transparent; color: #60a5fa; border: 2px solid #60a5fa; } .btn-secondary:hover { background: #60a5fa; color: #000; } /* Mobile Responsive */ @media (max-width: 768px) { .container { padding: 0 15px; margin: 0; } .nav-links { gap: 1rem; } .hero { padding: 2rem 0; } .features-grid, .workflow-steps, .config-grid { grid-template-columns: 1fr; } .cta-buttons { flex-direction: column; align-items: center; } .btn { width: 100%; max-width: 300px; } } /style>/head>body> header> nav classcontainer> a hrefhttps://www.andai.pro styletext-decoration: none;>div classlogo>AndAI/div>/a> ul classnav-links> li>a href#features>Features/a>/li> li>a href#workflow>Workflow/a>/li> li>a hrefhttps://github.com/andrejsstepanovs/andai/tree/main/screenshots>Screenshots/a>/li> li>a hrefhttps://github.com/andrejsstepanovs/andai/tree/main/docs>Docs/a>/li> li>a hrefhttps://github.com/andrejsstepanovs/andai>GitHub/a>/li> /ul> /nav> /header> main> section classhero> div classcontainer> h1>Reliable AI Development Workflows/h1> p classsubtitle>No todo.md. No finger-crossing. No ambiguity.br>Just consistent, reliable PRs every time./p> div classreality-check> h3>🎯 Dreams vs Reality/h3> p>strong>The Dream:/strong> AI agent, please build my app → magic happens → perfect code/p> p>strong>The Reality:/strong> Coding agents are fun but too free-thinking for reliable, consistent results/p> p>strong>AndAIs Approach:/strong> Narrow scope, add guardrails, ensure predictable outcomes/p> /div> /div> /section> section idfeatures classfeatures> div classcontainer> h2>Why AndAI works where others dont/h2> div classfeatures-grid> div classfeature-card> h3>🔒 Guardrailed Execution/h3> p>Unlike free-thinking agents, AndAI constrains AI within defined boundaries. You know exactly whats being done, why, and when./p> /div> div classfeature-card> h3>🏗️ State-Driven Architecture/h3> p>Built with proper ticketing system as a state storage and state machine. Issue dependencies, issue types and sub-tasks, you know the drill. Ticketing system provides context and each task is a git branch./p> /div> div classfeature-card> h3>🛡️ Failure Handling/h3> p>Fails properly when needed, integrate failure path and add user in the middle. Because happy path isnt the only path./p> /div> div classfeature-card> h3>🔄 Washing Machine Mode/h3> p>Load your story tasks, let them crack away overnight using cheap tokens. Come to work for review sessions and prep for the next batch./p> /div> div classfeature-card> h3>🌐 Any Model Support/h3> p>Works with any AI model - cloud or local. You can even configure specific module for specific command step. Your choice./p> /div> div classfeature-card> h3>🔌 Local first/h3> p>Everything is configurable and running locally. Adjust workflow config, add projects and start creating tickets./p> /div> /div> /div> /section> section classworkflow> div classcontainer> h2>Go grab a coffee mode workflow/h2> p>AndAI u>is not/u> AI Agent or IDE integration. Instead it is long running process. A reliable one, because it is heavily wrapping AI with code. Pre process input, gather info and summarize, code, test, fix, auto review, evaluate - loopty loop. Reliability takes time. More expensive upfront? Yes. But with good workflow it always will spit out a code you asked for over and over again./p> div classworkflow-steps> div classstep> div classstep-number>1/div> h3>Define & Queue/h3> p>Prepare structured tickets with clear acceptance criteria. Move it from Init to Backlog./p> /div> div classstep> div classstep-number>2/div> h3>Isolated Processing/h3> p>AndAI picks ticket, moves it to next status and works in dedicated branch with pre-defined command steps./p> /div> div classstep> div classstep-number>3/div> h3>Quality Gates/h3> p>Validation code before any human review. Try to auto fix or move ticket to status where user will take over./p> /div> div classstep> div classstep-number>4/div> h3>Review & Deploy/h3> p>AndAI deployment command will merge branch into parent and move ticket to Done. Then pick next unblocked ticket./p> /div> /div> /div> /section> section idworkflow classconfig-examples> div classcontainer> h2>Configure Your Perfect Workflow/h2> p>From simple 2-step processes to complex multi-stage pipelines - AndAI adapts to your needs. Its all yaml./p> div classconfig-grid> div classconfig-card> div classconfig-header> h3>⚡ Full valid config/h3> /div> div classconfig-content> pre>code classlanguage-yaml>workflow: transitions: - { source: Init, target: Backlog } - { source: Backlog, target: In Progress } - { source: In Progress, target: QA } - { source: QA, target: Deployment, success: true } - { source: QA, target: Backlog, fail: true } - { source: Deployment, target: Done } issue_types: Story: description: | Represents a significant feature or component that requires multiple Tasks to implement. Scope: Entire feature or major component, potentially spanning multiple files and modules. jobs: Backlog: { steps: { command: next } } # -- Pick it up for work In Progress: # -- Start working steps: - { command: context-files, context: wiki, ticket, comments, remember: true } - command: summarize-task comment: True context: issue_types, project, wiki, parents, ticket, comments, children prompt: | Analyze all available information and prepare detailed improved current issue description. Suggest how to split current Story issue into smaller scope Task issues. Make sure each Task issue is small enough to be implemented in a single code file. - command: create-issues # -- Create sub-tasks, move to QA and stay there until theyre not Done action: Task prompt: Split current issue into Task issues. context: issue_types, project, wiki, parents, ticket, last-5-comments, children Deployment: { steps: { command: merge-into-parent } } Task: description: | A unit of work focused on coding task. Scope: Only one code file or specific part of it. jobs: Init: { steps: { command: next } } # -- Prio from Init (defined in priorities:) Backlog: { steps: { command: next } } In Progress: steps: - command: aider action: architect-code summarize: True comment-summary: False context: project, wiki, ticket, last-5-comments prompt: Implement (code) given Task issue based on ticket description and last comments. - { command: project-cmd, action: reformat } - { command: commit, prompt: linter changes } QA: steps: - { command: project-cmd, action: lint, remember: true } - { command: project-cmd, action: test, remember: true } - { command: context-files, context: ticket, last-3-comments, remember: true } - { command: context-commits, context: ticket, comments, parent-comments, remember: true } - command: ai prompt: | If there are any linter or test errors then pinpoint exact files and place at fault. If there are no errors then answer with Linter and tests are OK. remember: True - { command: evaluate, context: ticket, comments } Deployment: { steps: { command: merge-into-parent } } states: # -- Define ticket task states (statuses) and if AndAI will work there. Init: { ai: Task, is_first: true, is_default: true } Backlog: { ai: Story, Task, description: Issue is ready to be worked on. } In Progress: { ai: Story, Task, description: Analyze Issue and plan how to work on it. } QA: { ai: Task, description: Test Task issues and Human Test Story. } Deployment: { ai: Story, Task, description: Merge code into to parent Issue branch. } Done: { ai: , is_closed: true, description: Issue is completed. } priorities: - { type: Task, state: Deployment } - { type: Task, state: QA } - { type: Task, state: In Progress } - { type: Task, state: Backlog } - { type: Task, state: Init } - { type: Story, state: Deployment } - { type: Story, state: QA } - { type: Story, state: In Progress } - { type: Story, state: Backlog } - { type: Story, state: Init }projects: - identifier: andai name: Andai description: Golang project git_path: /andai/.git git_local_dir: /home/ubuntu/andai/.git final_branch: main commands: - { name: test, command: make, test, ignore_err: true, ignore_stdout_if_no_stderr: true } - { name: lint, command: make, run-lint, ignore_err: true, success_if_no_output: true } - { name: reformat, command: gofmt, -s, -w, ., ignore_err: true, success_if_no_output: true } wiki: Coding assistant. More text about the project here.redmine: db: redmine:redmine@tcp(localhost:3306)/redmine # things from docker-compose url: http://localhost:8080 api_key: 2159cef2fb6c82c4f66981f199798781e161c694 # chill, its not a secret that needs hiding repositories: /var/repositories/llm_models: - { name: normal, temperature: 0.2, model: gemini-2.5-pro, provider: custom, base_url: http://localhost:4000/v1/chat/completions, api_key: sk-1234 } - { name: large, commands: summarize-task, temperature: 0.5, model: gemini-2.5-flash, provider: custom, base_url: http://localhost:4000/v1/chat/completions, api_key: sk-1234 }coding_agents: aider: # -- other coding agents coming.. config: /home/ubuntu/www/aiwork/.andai.aider.yaml config_fallback: /home/ubuntu/www/aiwork/.andai.aider.fallback.yaml model_metadata_file: /home/ubuntu/www/aiwork/.andai.aider.model.json timeout: 180m map_tokens: 512 task_summary_prompt: | I need you to REFORMAT the technical information above into a structured developer task. DO NOT implement any technical solution - your role is ONLY to organize and present the information.# This is valid, but not fully tested. Please check out /docs/examples/ if you want something battle tested./code>/pre> /div> div classconfig-content> pre>code classlanguage-bash>$ andai validate configIs valid$ andai go /code> /pre> /div> /div> /div> /section> section classcta> div classcontainer> h2>Ready to Build Reliable AI Workflows?/h2> p>Stop crossing fingers. Start shipping predictable, quality code with AI assistance that actually works./p> div classcta-buttons> a hrefhttps://github.com/andrejsstepanovs/andai classbtn btn-primary>Get Started/a> a hrefhttps://github.com/andrejsstepanovs/andai/tree/main/docs classbtn btn-secondary>Read Docs/a> /div> /div> /section> /main>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]