<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Andrey</title>
    <description>The latest articles on DEV Community by Andrey (@yermolaev).</description>
    <link>https://dev.to/yermolaev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3798401%2F53a94048-d27f-46a9-8fd0-f5b7a8386e07.jpg</url>
      <title>DEV Community: Andrey</title>
      <link>https://dev.to/yermolaev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yermolaev"/>
    <language>en</language>
    <item>
      <title>Skaro 2.0: Not Another AI Coding Tool, but a Workspace for Building Software With AI</title>
      <dc:creator>Andrey</dc:creator>
      <pubDate>Mon, 13 Apr 2026 13:24:36 +0000</pubDate>
      <link>https://dev.to/yermolaev/skaro-20-not-another-ai-coding-tool-but-a-workspace-for-building-software-with-ai-3f9e</link>
      <guid>https://dev.to/yermolaev/skaro-20-not-another-ai-coding-tool-but-a-workspace-for-building-software-with-ai-3f9e</guid>
      <description>&lt;p&gt;I wrote about &lt;strong&gt;Skaro&lt;/strong&gt; before, but since then the project has changed quite a lot.&lt;/p&gt;

&lt;p&gt;Version 2.0 is not a cosmetic update. It is a deeper rethink of how the product should work and what kind of collaboration model it should support.&lt;/p&gt;

&lt;p&gt;So instead of posting a simple changelog, I want to explain what Skaro actually is, why I keep building it, and where I want to take it next.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgvtzwms05mey973mb5i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgvtzwms05mey973mb5i.jpg" alt="" start="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The question I get the most
&lt;/h2&gt;

&lt;p&gt;Whenever I show a new AI tool for software development, I get the same question almost immediately:&lt;/p&gt;

&lt;p&gt;How is this different from Cursor, Codex, Claude Code, and why build something else at all?&lt;/p&gt;

&lt;p&gt;That is a fair question. But I think the problem is in the framing.&lt;/p&gt;

&lt;p&gt;Most people try to place Skaro into an existing category: editor, coding agent, code generator, or just another UI around an LLM.&lt;/p&gt;

&lt;p&gt;That is not how I think about it.&lt;/p&gt;

&lt;p&gt;Skaro was never meant to be just another utility that helps write code faster. And it was not meant to be just a chat where you occasionally paste pieces of a project.&lt;/p&gt;

&lt;p&gt;The idea is different.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Skaro is
&lt;/h2&gt;

&lt;p&gt;In short, Skaro is a collaborator and a workspace for building software projects together with AI.&lt;/p&gt;

&lt;p&gt;Not in the sense of replacing the developer.&lt;/p&gt;

&lt;p&gt;Not in the sense of asking the model to do everything on its own.&lt;/p&gt;

&lt;p&gt;But in the sense of real collaboration, where the human and the AI have different roles, and those roles are separated in a natural way.&lt;/p&gt;

&lt;p&gt;The human leads the project. The human owns the intent, the key decisions, the architecture, the constraints, and the meaning behind the work.&lt;/p&gt;

&lt;p&gt;The AI acts as engineering leverage. It helps discuss ideas, shape documents, break work into stages, define tasks, implement changes, return to context, and push things toward completion.&lt;/p&gt;

&lt;p&gt;That is the model that makes sense to me.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3q4ke9cdesqvep3ak5vv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3q4ke9cdesqvep3ak5vv.png" width="800" height="533"&gt;&lt;/a&gt;&lt;br&gt;
&lt;sup&gt;There is a typo in the generated image :)&lt;/sup&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  Why I felt this tool needed to exist
&lt;/h2&gt;

&lt;p&gt;Once you start building software with AI seriously, one problem shows up very quickly.&lt;/p&gt;

&lt;p&gt;Human + AI collaboration produces a large amount of decisions, assumptions, agreements, intermediate conclusions, corrections, and context. You cannot keep all of that in your head. And you cannot scatter it across random chats either.&lt;/p&gt;

&lt;p&gt;At some point, a project starts to fall apart not because there is not enough code, but because the thread gets lost:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why a certain decision was made&lt;/li&gt;
&lt;li&gt;what the architecture depends on&lt;/li&gt;
&lt;li&gt;what was already agreed on&lt;/li&gt;
&lt;li&gt;how one task relates to another&lt;/li&gt;
&lt;li&gt;which constraints were already established&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That is why I think an AI-assisted project needs external memory.&lt;/p&gt;

&lt;p&gt;Not a detached knowledge base somewhere on the side, but a working structure that lives close to the project itself and stays visible during everyday work.&lt;/p&gt;
&lt;h2&gt;
  
  
  Why artifacts are at the center of Skaro
&lt;/h2&gt;

&lt;p&gt;That is what artifacts are for in Skaro.&lt;/p&gt;

&lt;p&gt;Artifacts are not documents for the sake of documents. And they are not bureaucracy layered on top of development.&lt;/p&gt;

&lt;p&gt;They are the recorded output of what was already discussed, designed, and agreed on: architecture, plans, milestones, tasks, and other important project decisions.&lt;/p&gt;

&lt;p&gt;That gives the human a stable thread to follow.&lt;/p&gt;

&lt;p&gt;And it gives the AI something better than a blank slate every time. The model can work from an existing foundation instead of guessing from a short prompt.&lt;/p&gt;

&lt;p&gt;For me, this is one of the key ideas.&lt;/p&gt;

&lt;p&gt;If a project is developed together with AI, then an important part of the context should live not only in the author’s head and not only in chat history, but in a clear structure inside the repository.&lt;/p&gt;

&lt;p&gt;That is what gives the work continuity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is what the &lt;code&gt;.skaro&lt;/code&gt; folder structure looks like:&lt;/strong&gt; (trimmed)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;.skaro
│   config.yaml
│   constitution.md
│   devplan.md
│   secrets.yaml
│   state.yaml
│   token_usage.yaml
│   usage_log.jsonl
│
├───architecture
│   │   adr-001-using-fastapi-as-web-framework.md
│   │   adr-002-simplified-layered-monolith-as-architectural-pattern.md
│   │   adr-003-using-psutil-for-system-metrics.md
│   │   adr-004-no-database-in-favor-of-stateless-architecture.md
│   │   adr-005-no-docker-in-favor-of-native-windows-run.md
│   │   adr-006-no-authentication-and-authorization-for-public-....md
│   │   adr-007-using-pydantic-settings-for-config.md
│   │   adr-008-sync-psutil-calls-in-async-endpoints.md
│   │   adr-009-testing-strategy
│   │   architecture.md
│   │   chat-conversation.json
│   │
│   └───diagrams
├───chat
│       tasks.json
│
├───docs
│       review-results.json
│
├───features
├───milestones
│   ├───01-foundation
│   │   │   milestone.md
│   │   │   order.json
│   │   │
│   │   ├───config-module
│   │   │   │   clarifications.md
│   │   │   │   plan.md
│   │   │   │   spec.md
│   │   │   │   tasks.md
│   │   │   │   tests-confirmed
│   │   │   │   tests.json
│   │   │   │   verify.yaml
│   │   │   │
│   │   │   └───stages
│   │   │       └───stage-01
│   │   │               AI_NOTES.md
│   │   │
├───models_cache
│       groq.json
│
├───ops
└───templates
        adr-template.md
        ai-notes-template.md
        architecture-template.md
        constitution-template.md
        devplan-template.md
        plan-template.md
        security-checklist.md
        spec-template.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  What the workflow is supposed to look like
&lt;/h2&gt;

&lt;p&gt;The workflow I believe in looks roughly like this:&lt;/p&gt;

&lt;p&gt;First, the human and the AI think through the project and create the core architecture documents.&lt;/p&gt;

&lt;p&gt;Then those documents are used to shape a plan, break it into milestones, and define concrete tasks.&lt;/p&gt;

&lt;p&gt;Only after that does implementation begin, again with AI, but no longer in a chaotic way. It happens with a recorded foundation behind it.&lt;/p&gt;

&lt;p&gt;This is also why chat matters to me — but only where discussion is actually needed.&lt;/p&gt;

&lt;p&gt;The point is not “the product has chat.”&lt;/p&gt;

&lt;p&gt;There is already enough chat in the world.&lt;/p&gt;

&lt;p&gt;The point is that architecture, plans, tasks, and other working materials can be discussed right where they live, and the result can be saved directly into the repository.&lt;/p&gt;

&lt;p&gt;That keeps the workflow coherent. Context stays attached to the thing it belongs to.&lt;/p&gt;

&lt;h2&gt;
  
  
  What changed in Skaro 2.0
&lt;/h2&gt;

&lt;p&gt;With version 2.0, my goal was not to add isolated features.&lt;/p&gt;

&lt;p&gt;The goal was to improve the overall process of human + AI collaboration around a software project.&lt;/p&gt;

&lt;p&gt;Not “a few more screens,” but a product that makes this way of working more understandable, more natural, and more usable in day-to-day practice.&lt;/p&gt;

&lt;p&gt;Here are the changes that matter most to me.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chat is now embedded where the work happens
&lt;/h2&gt;

&lt;p&gt;In Skaro 2.0, chat is available wherever discussion with AI is actually part of the workflow.&lt;/p&gt;

&lt;p&gt;That matters not because “there is now a chat inside the product.” Plenty of tools already have that.&lt;/p&gt;

&lt;p&gt;What matters is that the discussion now happens in the context of artifacts, tasks, and working pages. You do not have to leave the workflow or move important conversations into a disconnected place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fimlk22hf41fu9uudgbsw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fimlk22hf41fu9uudgbsw.png" alt="" width="800" height="463"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The model gets a real starting point before implementation
&lt;/h2&gt;

&lt;p&gt;Before executing a task, the LLM receives an initial project context and can then request the files it needs for implementation.&lt;/p&gt;

&lt;p&gt;That is an important step toward consistency.&lt;/p&gt;

&lt;p&gt;The model is not just given a short prompt and expected to work almost blindly. It starts from a defined context and can retrieve the relevant material within the scope of the task.&lt;/p&gt;

&lt;p&gt;That makes the implementation more coherent and reduces the number of cases where generated changes drift away from decisions that were already made.&lt;/p&gt;

&lt;h2&gt;
  
  
  Auto-commit when a task is completed
&lt;/h2&gt;

&lt;p&gt;There is now an option to enable automatic commits after task completion.&lt;/p&gt;

&lt;p&gt;This does not look like a headline feature, but in practice it is genuinely useful.&lt;/p&gt;

&lt;p&gt;When your workflow is moving quickly, small things like this reduce friction and help maintain momentum.&lt;/p&gt;

&lt;h2&gt;
  
  
  Statistics now live on a separate page
&lt;/h2&gt;

&lt;p&gt;This made the interface cleaner and easier to reason about.&lt;/p&gt;

&lt;p&gt;Core workflows no longer compete for space on the same screen, and model usage and activity metrics are easier to inspect in a dedicated place.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6xh8u7x78zylq416hphr.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6xh8u7x78zylq416hphr.jpg" alt="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The start page reflects project state better
&lt;/h2&gt;

&lt;p&gt;The start page now includes a Kanban-style task board.&lt;/p&gt;

&lt;p&gt;This is not just a nicer overview. It gives a quick read on the current project state, shows where work stopped, and helps you get back into the flow without extra navigation.&lt;/p&gt;

&lt;p&gt;For a tool that is supposed to help run a project, not just generate code fragments, that matters a lot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgvtzwms05mey973mb5i.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgvtzwms05mey973mb5i.jpg" alt="" start="" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The interface became more flexible and more calm
&lt;/h2&gt;

&lt;p&gt;Version 2.0 adds lightweight theme customization. You can choose an accent color or set your own.&lt;/p&gt;

&lt;p&gt;More broadly, the UI was improved to feel more stable and predictable during daily use.&lt;/p&gt;

&lt;p&gt;I do not think of interface design as decoration. If a product is meant to be a real workspace, it should feel calm, readable, and consistent.&lt;/p&gt;

&lt;p&gt;So in 2.0 I paid attention not only to what was added, but also to how the product feels while you work in it every day.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5c7qvil6njcisnbli05.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh5c7qvil6njcisnbli05.jpg" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Known issues were also fixed
&lt;/h2&gt;

&lt;p&gt;A less glamorous but important part of the work in 2.0 was fixing known issues that were getting in the way of the product being used the way it was intended.&lt;/p&gt;

&lt;p&gt;For me, that kind of work matters just as much as shipping new features.&lt;/p&gt;

&lt;p&gt;If a tool wants to become a long-term workspace, it has to be solid in everyday use, not only interesting as an idea.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I want to take the project next
&lt;/h2&gt;

&lt;p&gt;The core of Skaro will remain &lt;strong&gt;Open Source&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That is a principle for me.&lt;/p&gt;

&lt;p&gt;The underlying idea — building software with AI around artifacts, project memory, and a tighter link between discussion and implementation — should stay open.&lt;/p&gt;

&lt;p&gt;At the same time, I want to build a separate workspace layer around Skaro for teams and companies.&lt;/p&gt;

&lt;p&gt;That means a broader collaboration environment: access control, analytics, cost visibility, boards, shared workflows, and other capabilities that matter when the product is used by a team rather than a single developer.&lt;/p&gt;

&lt;p&gt;That feels like the next logical layer.&lt;/p&gt;

&lt;p&gt;But the open source core is not going away, and it is not meant to become a closed showcase.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final thoughts
&lt;/h2&gt;

&lt;p&gt;I do not see Skaro as an attempt to make “just another AI coding tool.”&lt;/p&gt;

&lt;p&gt;And I do not see it as another shell around a model.&lt;/p&gt;

&lt;p&gt;I see it as a working environment where humans and AI build software projects together, while key decisions, plans, milestones, and tasks are stored in a clear structure so the project does not dissolve into memory and scattered chat threads.&lt;/p&gt;

&lt;p&gt;That is what Skaro 2.0 was rebuilt for.&lt;/p&gt;

&lt;p&gt;If this model resonates with you, I would genuinely like to hear your thoughts.&lt;/p&gt;

&lt;p&gt;And if you are already building software with AI and have run into the same problems — project memory, decision consistency, context loss — I would be especially interested in comparing approaches.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/skarodev/skaro" rel="noopener noreferrer"&gt;https://github.com/skarodev/skaro&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Website&lt;/strong&gt;: &lt;a href="https://skaro.dev" rel="noopener noreferrer"&gt;https://skaro.dev&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Docs&lt;/strong&gt;: &lt;a href="https://docs.skaro.dev" rel="noopener noreferrer"&gt;https://docs.skaro.dev&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Telegram&lt;/strong&gt;: &lt;a href="https://t.me/skarodev" rel="noopener noreferrer"&gt;https://t.me/skarodev&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Discord&lt;/strong&gt;: &lt;a href="https://discord.gg/zUv6AHuJwD" rel="noopener noreferrer"&gt;https://discord.gg/zUv6AHuJwD&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Skaro — AI-Powered Software Development Platform</title>
      <dc:creator>Andrey</dc:creator>
      <pubDate>Tue, 10 Mar 2026 15:24:24 +0000</pubDate>
      <link>https://dev.to/yermolaev/skaro-ai-powered-software-development-platform-n9h</link>
      <guid>https://dev.to/yermolaev/skaro-ai-powered-software-development-platform-n9h</guid>
      <description>&lt;p&gt;A while back I published an &lt;a href="https://habr.com/ru/articles/1007048/" rel="noopener noreferrer"&gt;article&lt;/a&gt; about my AI-coding practices. The comments introduced me to the &lt;a href="https://www.google.com/search?q=spec-driven+development" rel="noopener noreferrer"&gt;SDD (Spec-Driven Development)&lt;/a&gt; methodology — and that sparked an idea.&lt;/p&gt;

&lt;p&gt;What if I built a tool that &lt;strong&gt;manages and automates the entire development process&lt;/strong&gt; — one based on specs and controlled code generation, with no context loss between sessions?&lt;/p&gt;

&lt;p&gt;I dove in. Almost no sleep for several days. Yesterday I shipped the MVP.&lt;/p&gt;

&lt;p&gt;Meet &lt;strong&gt;Skaro&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6haww0f5t89jvklta1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs6haww0f5t89jvklta1l.png" alt="Skaro Dashboard" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/skarodev/skaro" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; · &lt;a href="https://docs.skaro.dev/" rel="noopener noreferrer"&gt;Docs&lt;/a&gt; · &lt;a href="https://skaro.dev/" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;Skaro structures development as a sequential pipeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Constitution&lt;/strong&gt; — tech stack, code standards, test requirements, security policies, LLM rules&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Architecture&lt;/strong&gt; — project overview, components, data storage, interactions, infrastructure, integrations, trade-offs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dev Plan&lt;/strong&gt; — milestones and tasks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tasks&lt;/strong&gt; — each task has its own pipeline: spec → clarification → plan → implementation → tests&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Review&lt;/strong&gt; — repository-wide check against all pipeline stages, LLM chat for fixing issues&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All artifacts (specs, plans, LLM Q&amp;amp;A) are stored in &lt;code&gt;.skaro/&lt;/code&gt; alongside the code and committed to the repo. &lt;strong&gt;Context is never lost between sessions.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Roles
&lt;/h3&gt;

&lt;p&gt;Each role can be assigned its own model — some models excel at coding, others at planning and architecture reasoning. Personally, I use Anthropic Opus 4.6 for all roles.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Role&lt;/th&gt;
&lt;th&gt;Responsibility&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Architect&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Architecture generation &amp;amp; review, ADR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Coder&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stage-by-stage task implementation&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Reviewer&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Repository check, error fixing&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The dashboard shows project statistics: token consumption broken down by role and task, file stats, and pipeline progress.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Installation
&lt;/h2&gt;

&lt;p&gt;Requires Python 3.11+.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Windows (PowerShell):&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight powershell"&gt;&lt;code&gt;&lt;span class="n"&gt;irm&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;https://raw.githubusercontent.com/skarodev/skaro/main/install.ps1&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;iex&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Linux / macOS:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://raw.githubusercontent.com/skarodev/skaro/main/install.sh | sh
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The script creates an isolated venv in &lt;code&gt;~/.skaro/&lt;/code&gt; and installs the CLI. Re-running it detects the existing venv and upgrades in place.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Alternatively — via pipx or uv:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pipx &lt;span class="nb"&gt;install &lt;/span&gt;skaro
&lt;span class="c"&gt;# or&lt;/span&gt;
uv tool &lt;span class="nb"&gt;install &lt;/span&gt;skaro
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify the installation:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;skaro &lt;span class="nt"&gt;--version&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  2. Project Initialization
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3jp5ka3isrgum0q7r743.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3jp5ka3isrgum0q7r743.png" alt="Project initialization in CLI" width="800" height="505"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cd &lt;/span&gt;my-project
skaro init
skaro ui
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;skaro init&lt;/code&gt; handles two scenarios:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;New project&lt;/strong&gt; — creates a &lt;code&gt;.skaro/&lt;/code&gt; directory with empty constitution, architecture, and config templates&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Existing repo&lt;/strong&gt; — Skaro analyzes the codebase and auto-generates the constitution and architecture from the found code; you only need to create the plan and tasks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;code&gt;skaro ui&lt;/code&gt; launches the web dashboard at &lt;code&gt;http://localhost:4700&lt;/code&gt;.&lt;br&gt;
Multiple projects can run simultaneously — each additional one opens on port 4700+1.&lt;/p&gt;

&lt;p&gt;Check the current project state from the terminal:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;skaro status
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  3. LLM Configuration
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4a5h45le7k7wnv07gjar.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4a5h45le7k7wnv07gjar.png" alt="LLM settings page" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Providers and models are configured via the UI — separately for each role (architect, coder, reviewer).&lt;/p&gt;

&lt;p&gt;Supported providers:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Provider&lt;/th&gt;
&lt;th&gt;API Key Required&lt;/th&gt;
&lt;th&gt;Default Model&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Anthropic&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;claude-sonnet-4-6&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OpenAI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;gpt-5.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Groq&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;yes&lt;/td&gt;
&lt;td&gt;llama-3.3-70b-versatile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ollama&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;no&lt;/td&gt;
&lt;td&gt;qwen3:32b&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Keys are stored locally and only sent to the selected provider.&lt;/p&gt;

&lt;p&gt;More in documentation: &lt;a href="https://docs.skaro.dev/providers/supported-providers" rel="noopener noreferrer"&gt;https://docs.skaro.dev/providers/supported-providers&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  4. Constitution
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxx5y2szwa9k036j4lhf7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxx5y2szwa9k036j4lhf7.png" alt="Constitution page" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Constitution is a document that defines project rules for the LLM: tech stack, code standards, test requirements, security policies.&lt;/p&gt;

&lt;p&gt;Fill it in manually with the built-in MD editor or pick a ready-made preset.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxq0vz0t0wdoiphmzg9k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frxq0vz0t0wdoiphmzg9k.png" alt="Constitution MD editor" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Available presets: &lt;code&gt;React&lt;/code&gt;, &lt;code&gt;Next.js&lt;/code&gt;, &lt;code&gt;SvelteKit&lt;/code&gt;, &lt;code&gt;Vue&lt;/code&gt;, &lt;code&gt;Angular&lt;/code&gt;, &lt;code&gt;FastAPI&lt;/code&gt;, &lt;code&gt;Django&lt;/code&gt;, &lt;code&gt;NestJS&lt;/code&gt;, &lt;code&gt;Express&lt;/code&gt;, &lt;code&gt;Flutter&lt;/code&gt;, &lt;code&gt;React Native&lt;/code&gt;, &lt;code&gt;Kotlin Multiplatform&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Example constitution block:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## LLM Rules&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; No stubs without an explicit TODO and justification
&lt;span class="p"&gt;-&lt;/span&gt; No code duplication: prefer reuse and clear abstractions
&lt;span class="p"&gt;-&lt;/span&gt; No hidden assumptions — ask when uncertain
&lt;span class="p"&gt;-&lt;/span&gt; Always generate AI_NOTES.md from the template
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  5. Architecture
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fztxyl63du25x08a07y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fztxyl63du25x08a07y.png" alt="Architecture page" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Architecture is the key document for the LLM. It starts with an &lt;strong&gt;Overview&lt;/strong&gt;: what is being built and what problem it solves. Without this context the model doesn't understand the project's goals. It then describes components and their responsibilities, data stores, interaction protocols, infrastructure, external integrations, and known trade-offs.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;New: Architecture can now be generated with an LLM.&lt;/strong&gt; The Architect role analyzes your filled-in overview and proposes a full architecture for your review and approval.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0hmbgryu0jiwbqfdamc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0hmbgryu0jiwbqfdamc.png" alt="LLM Architecture Generation" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once approved, the architecture is locked and becomes the context for all subsequent tasks.&lt;/p&gt;




&lt;h2&gt;
  
  
  5.1 ADR
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsisjdt02f67car00w3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbsisjdt02f67car00w3l.png" alt="ADR" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the architecture is approved, Skaro offers to generate &lt;strong&gt;ADR (Architecture Decision Records)&lt;/strong&gt; — documents that capture key architectural decisions: what was decided, what alternatives were considered, and why they were rejected. ADRs are stored in the repo and serve as historical context for the whole team.&lt;/p&gt;




&lt;h2&gt;
  
  
  6. Dev Plan
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihc7ff6xsg8vnfr9w8yu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fihc7ff6xsg8vnfr9w8yu.png" alt="Dev plan page" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The dev plan is structured around milestones. Each milestone contains a list of tasks with dependencies and statuses.&lt;/p&gt;

&lt;p&gt;Tasks can be generated from the architecture via LLM or added manually. The plan template lives in &lt;code&gt;.skaro/devplan.md&lt;/code&gt; and is directly editable.&lt;/p&gt;




&lt;h2&gt;
  
  
  7. Tasks
&lt;/h2&gt;

&lt;h3&gt;
  
  
  7.1 Generating Tasks from the Dev Plan
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff98n7i44pp2ckg95uhgo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff98n7i44pp2ckg95uhgo.png" alt="Task generation" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tasks are generated from the plan in one action. Each task gets its own directory at &lt;code&gt;.skaro/milestones/&amp;lt;milestone&amp;gt;/&amp;lt;task&amp;gt;/&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.2 Task Specification
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufw8u23xe7yne68p309w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fufw8u23xe7yne68p309w.png" alt="Task specification" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The spec describes the task from a template: context, user scenarios, functional and non-functional requirements, explicit constraints, acceptance criteria.&lt;/p&gt;

&lt;p&gt;A clear spec is the foundation of quality implementation. The more precisely it's described, the fewer gaps there are.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.3 LLM Q&amp;amp;A
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxm5dzfaym3t4c8ftu1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxm5dzfaym3t4c8ftu1n.png" alt="Q&amp;amp;A phase" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After reading the spec, the LLM Architect asks clarifying questions. Answers are saved as task artifacts and included in the generation context.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.4 Implementation Plan &amp;amp; Stage Breakdown
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fftbswv07msncpxyzizcb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fftbswv07msncpxyzizcb.png" alt="Implementation plan" width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Based on the spec and Q&amp;amp;A answers, the Coder role builds a step-by-step implementation plan. Each stage is an atomic set of changes that can be implemented and verified independently.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.5 Stage-by-Stage Implementation
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ldd8yimgmsjum8s19gq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ldd8yimgmsjum8s19gq.png" alt="Stage implementation" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Coder role implements the task stage by stage. Each stage produces a list of files with their contents.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.6 File Confirmation
&lt;/h3&gt;

&lt;p&gt;Before writing to disk, a full diff is available for each new or modified file. The developer explicitly confirms saving — no automatic overwriting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fefat151sfi0tybs63dd6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fefat151sfi0tybs63dd6.png" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  7.7 Git
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgp165hmf7kd3l0fbpmp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbgp165hmf7kd3l0fbpmp.png" alt="Git integration" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The built-in Git section shows a list of changed files with their statuses. For each file you can view the diff, select files for staging, write a commit message, push changes, or create a new branch — all from the dashboard UI.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.8 Tests
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F439fyodxfss7faex4pp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F439fyodxfss7faex4pp0.png" alt="Tests" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The test phase performs a structural check of the task: are all files from the plan present on disk, are there test files in the project, is the spec filled in, are all implementation stages complete. You can also configure arbitrary verification commands in &lt;code&gt;verify.yaml&lt;/code&gt; — they'll be executed automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfsrhptsmb1526ecmfzz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfsrhptsmb1526ecmfzz.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The LLM proposes corrected files:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtyfpimr97kmxe25bqbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqtyfpimr97kmxe25bqbk.png" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🤖 Autopilot
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhtl6yow6ovyzlhtbh3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmhtl6yow6ovyzlhtbh3s.png" alt="Autopilot mode" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Put a task on autopilot and go grab a coffee ☕&lt;/p&gt;

&lt;p&gt;When autopilot is running:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Asks clarifying questions and answers them itself&lt;/strong&gt; — no interruptions needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Forms an execution plan&lt;/strong&gt; — breaks the task into atomic stages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sequentially implements each stage&lt;/strong&gt; — from spec to working code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adds new files to &lt;code&gt;git stage&lt;/code&gt;&lt;/strong&gt; automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runs tests&lt;/strong&gt; — missing tests are silently skipped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every stage is saved as it completes, so you can &lt;strong&gt;return to any step later and continue from there&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  8. Review
&lt;/h2&gt;

&lt;h3&gt;
  
  
  8.1 Repository Check
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgmvvavcssrxkgtc0r31.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpgmvvavcssrxkgtc0r31.png" alt="Repository review" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Review performs a project-wide check: is the constitution approved, is the architecture confirmed, are all tasks implemented and tested, are there any open milestones. Global verification commands from the config are also run.&lt;/p&gt;

&lt;h3&gt;
  
  
  8.2 LLM Chat for Fixing Issues
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxznv1lyqvpl4eblt55y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyxznv1lyqvpl4eblt55y.png" alt="Fix chat" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the review a chat session opens. Before sending, you can select a scope — specific tasks or milestones for the LLM to take as context. Describe the problem, the LLM proposes fixes using the same diff-view and file-confirmation mechanism.&lt;/p&gt;




&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;Skaro is licensed under &lt;a href="https://github.com/skarodev/skaro/blob/main/LICENSE" rel="noopener noreferrer"&gt;AGPL-3.0&lt;/a&gt; — the core stays open and free.&lt;/p&gt;

&lt;p&gt;A first real project built entirely in Skaro: &lt;a href="https://github.com/dartdavros/Tic-Tac-Toe" rel="noopener noreferrer"&gt;Tic-Tac-Toe&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I'd love feedback and any criticism — drop it in the comments or reach out via the links below.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Links:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://skaro.dev" rel="noopener noreferrer"&gt;Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/skarodev/skaro" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.skaro.dev/" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://pypi.org/project/skaro/" rel="noopener noreferrer"&gt;PyPI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://t.me/skarodev" rel="noopener noreferrer"&gt;Telegram&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://discord.gg/zUv6AHuJwD" rel="noopener noreferrer"&gt;Discord&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>devtools</category>
      <category>opensource</category>
      <category>productivity</category>
    </item>
  </channel>
</rss>
