Tworzenie autonomicznych potoków deweloperskich za pomocą plików agents.md i skills.md w Antigravity

1. Wprowadzenie

W tym ćwiczeniu pokażemy, jak skonfigurować na komputerze zabawny, wspomagany przez AI autonomiczny zespół deweloperów AI za pomocą środowiska IDE Antigravity. Zbudujesz działającą aplikację, przeprowadzając wymagania przez cały cykl życia – od specyfikacji technicznej po wdrożenie końcowe – za pomocą zaawansowanego przepływu pracy skills.mdagents.md.

Zamiast ograniczać się do konkretnego stosu technologicznego lub pisać złożone skrypty administracji w języku Python, zastosujemy przyjazne podejście bez użycia kodu, w którym Twoje wymagania będą przechodzić przez zautomatyzowany cykl oparty na 3 głównych zasadach Antigravity:

  1. agents.md: aby dokładnie określić, kto wchodzi w skład Twojego zespołu ds. AI (menedżer produktu, programista interfejsu, specjalista ds. kontroli jakości, specjalista ds. DevOps).
  2. Skills i skills.md: dedykowany katalog, w którym definiujesz zaawansowane umiejętności techniczne i reguły przekazywania artefaktów jako modułowe pliki .md.
  3. Workflows (workflows/): umożliwia definiowanie niestandardowych poleceń po ukośniku, które bezproblemowo łączą członków zespołu AI w autonomiczny potok.

Łącząc te 3 elementy w Antigravity, możesz nakierować Gemini na całkowite zautomatyzowanie procesu tworzenia aplikacji przygotowanej do zastosowań produkcyjnych od początku do końca.

Czego się nauczysz

  • Zainicjuj obszar roboczy: skonfiguruj projekt, aby Antigravity mógł go dokładnie poznać.
  • Określ zespół: utwórz plik agents.md, aby określić specjalistyczne persony AI.
  • Programowanie umiejętności: twórz szczegółowe pliki .md w katalogu skills/, aby zdefiniować ścisłe reguły techniczne i iteracyjne pętle przeróbek.
  • Określanie niestandardowych przepływów pracy: utwórz /startcycle polecenie po ukośniku, aby zautomatyzować przepływ pracy w studiu.
  • Uruchom reakcję łańcuchową: użyj jednego polecenia, aby automatycznie i wydajnie wykonać cały potok wielu agentów.

Co wypróbujesz

  • Jak oddzielić inżynierię promptów AI od kodu aplikacji.
  • Jak skonstruować agenta, który aktywnie wstrzymuje działanie, aby interpretować komentarze i edycje użytkownika w wygenerowanych plikach Markdown.
  • Jak zdobyć umiejętności dynamicznego generowania i wdrażania kodu niezależnego od języka.
  • Jak tworzyć niestandardowe polecenia makr (przepływy pracy) w IDE z agentem.

Czego potrzebujesz

Zanim zaczniesz

W przypadku środków w Google Cloud: aby ułatwić Ci korzystanie z Antigravity w projektach Google Cloud, wykorzystaj bezpłatne środki w Google Cloud, klikając ten link. Aby aktywować środki i utworzyć nowy projekt, postępuj zgodnie z instrukcjami podanymi tutaj.

  1. Sprawdź, czy masz zainstalowane środowisko IDE Antigravity (dostępne na stronie antigravity.google).
  2. Otwórz IDE Antigravity i upewnij się, że masz świeżo zainicjowany dedykowany obszar roboczy.
  3. Podczas pracy w trybie edytora miej otwarty terminal.

2. Inicjowanie Workspace

Antigravity natywnie rozpoznaje pliki przepływu pracy umieszczone w katalogu .agents, więc skonfigurowanie autonomicznego potoku deweloperskiego jest tak proste, jak utworzenie kilku standardowych folderów.

Obszar roboczy możesz skonfigurować:

  1. Otwórz Antigravity IDE.
  2. Otwórz Menedżera agentów. W dowolnym momencie możesz przełączać się między Menedżerem agentów a edytorem, naciskając CMD+E (Mac) lub CTRL+E (Windows) albo używając przycisków Otwórz edytor i Otwórz Menedżera agentów w prawym górnym rogu paska menu. .
  3. Kliknij + Otwórz obszar roboczy.

Aby rozpocząć nową rozmowę w obszarze roboczym, wybierz odpowiedni obszar roboczy na karcie Rozpocznij rozmowę lub kliknij przycisk plusa obok nazwy obszaru roboczego na pasku bocznym.

45e7241be5552e42.png

  1. Kliknij Otwórz nowy obszar roboczy, nadaj mu nazwę skills-codelab i wybierz katalog lokalny. Dzięki temu Agent ma określony folder główny, w którym może tworzyć pliki bez zaśmiecania innych projektów. Następnie przejdź do widoku edytora i wykonaj kroki (5), (6) i (7).

d84ba507939a5efc.png

  1. Kliknij prawym przyciskiem myszy i utwórz folder skills-codelab.
  2. Utwórz w nim 2 katalogi: production_artifactsapp_build.
  3. Utwórz katalog .agents, a w nim foldery workflows i skills.

(Opcjonalnie) Jeśli wolisz używać terminala, możesz od razu wygenerować tę strukturę, uruchamiając to polecenie:

mkdir skills-codelab && cd skills-codelab
mkdir -p .agents/workflows .agents/skills
mkdir production_artifacts app_build

Upewnij się, że folder wygląda tak:

7234ea48c2b175a7.png

Do czego służą te nowe foldery?

  • .agents/: Jest to specjalny katalog natywnie rozpoznawany przez Antigravity. Umieszczając tu pliki, rozszerzasz wbudowane działanie AI Antigravity.
  • skills/: Ten folder służy do przechowywania konkretnych instrukcji technicznych (plików .md) dotyczących Twojej AI. Dzięki temu AI wie, jak wykonywać konkretne zadania, takie jak pisanie kodu czy wdrażanie aplikacji. Zastępuje to jeden obszerny, niejasny prompt modułowymi krokami.
  • production_artifacts/: to nasz folder udostępniony, w którym nasi zautomatyzowani członkowie zespołu będą celowo umieszczać pliki, aby kolejny agent mógł je przeczytać.
  • app_build/: wyznaczony obszar roboczy dla kodu aplikacji. Agent Full-Stack Engineer wygeneruje cały kod (np. package.json, app.py, komponenty React) i zapisze go bezpośrednio w tym folderze, izolując źródło aplikacji od instrukcji AI.

3. Zdefiniuj zespół (agents.md)

Najpierw musimy poinformować Antigravity, kto pracuje nad tym projektem. Zamiast przechowywać instrukcje w 4 różnych zagnieżdżonych folderach projektu, centralizujemy tożsamość naszego zespołu. Utwórz plik w lokalizacji .agents/agents.md:

Dlaczego potrzebujemy różnych person?

Gdy poprosisz AI o zbudowanie całej aplikacji od zera, może ona łatwo zostać przytłoczona, jeśli zmusisz ją do pełnienia jednocześnie funkcji architekta, programisty, testera i kierownika wdrożenia. Dzięki scentralizowaniu tych ról w agents.md zapobiegasz dezorientacji AI. Menedżer produktu skupia się tylko na wymaganiach, inżynier tylko na generowaniu kodu, a zespół ds. kontroli jakości tylko na naprawianiu błędów. Na każdym etapie potoku masz do dyspozycji wyspecjalizowanych ekspertów.

Plik agents.md rozwiązuje ten problem, centralizując różne profile użytkowników w Twoim zespole:

  1. Menedżer produktu (@pm): skupia się tylko na ogólnym obrazie. Tworzą plik Technical_Specification.md i zarządzają procesem zatwierdzania, w którym uczestniczysz Ty (człowiek).
  2. Inżynier Full-Stack (@engineer): nie przejmuje się planowaniem, tylko bierze specyfikację od menedżera produktu i skupia się na pisaniu wysokiej jakości kodu w dowolnym języku, który zatwierdzisz.
  3. Inżynier ds. kontroli jakości (@qa): sprawdza projekt z perspektywy osoby, która nie brała udziału w jego tworzeniu. Zamiast pisać nowe funkcje, skupiają się wyłącznie na znajdowaniu brakujących zależności, błędów składniowych lub błędów logicznych w kodzie inżyniera.
  4. DevOps Master (@devops): skupia się wyłącznie na środowisku wykonawczym. Wiedzą, jak odczytywać terminal, instalować pakiety (npm install, pip install) i uruchamiać serwer lokalny.
# 🤖 The Autonomous Development Team

## The Product Manager (@pm)
You are a visionary Product Manager and Lead Architect with 15+ years of experience.
**Goal**: Translate vague user ideas into comprehensive, robust, and technology-agnostic Technical Specifications.
**Traits**: Highly analytical, user-centric, and structured. You never write code; you only design systems.
**Constraint**: You MUST always pause for explicit user approval before considering your job done. You are highly receptive to user feedback and will enthusiastically re-write specifications based on inline comments.

## The Full-Stack Engineer (@engineer)
You are a 10x senior polyglot developer capable of adapting to any modern tech stack.
**Goal**: Translate the PM's Technical Specification into a beautiful, perfectly structured, production-ready application.
**Traits**: You write clean, DRY, well-documented code. You care deeply about modern UI/UX and scalable backend logic.
**Constraint**: You strictly follow the approved architecture. You do not make assumptions—if the spec says Python, you use Python. You always save your code into the `app_build/` directory.

## The QA Engineer (@qa)
You are a meticulous Quality Assurance engineer and security auditor.
**Goal**: Scrutinize the Engineer's code to guarantee production-readiness.
**Traits**: Detail-oriented, paranoid about security, and relentless in finding edge cases.
**Focus Areas**: You aggressively hunt for missing dependencies in configurations, unhandled promises, syntax errors, and logic bugs. You proactively fix them.

## The DevOps Master (@devops)
You are the elite deployment lead and infrastructure wizard.
**Goal**: Take the final code in `app_build/` and magically bring it to life on a local server.
**Traits**: You excel at terminal commands and environment configurations.
**Expertise**: You fluently use tools like `npm`, `pip`, or native runners. You install all necessary modules seamlessly and provide the local URL directly to the user so they can see the final product!

Zwróć uwagę, jak definiujemy cele, cechy i ograniczenia dla każdego profilu.

  • Cele określają dokładną odpowiedzialność agenta w procesie.
  • Cechy nadają mu osobowość behawioralną, określając, jak ma się zachowywać (np. „10-krotnie lepszy starszy programista” lub „ma obsesję na punkcie bezpieczeństwa”).
  • Ograniczenia działają jak ścisłe wytyczne (np. „nigdy nie pisz kodu”, „ściśle przestrzegaj zatwierdzonej architektury”).

Takie sformułowanie promptów znacznie ogranicza halucynacje AI i zapewnia, że agent ściśle przestrzega wymaganego przepływu pracy.

Upewnij się, że folder wygląda tak:

4. Programowanie umiejętności specjalistycznych (skills/)

Szczegółowe inżynieria instrukcji to klucz do magii bez kodu. Utworzymy bardzo szczegółowe pliki tekstowe dla każdej umiejętności, dzięki czemu menedżer projektu będzie aktywnie wracać do poprzednich etapów, jeśli poprosisz o zmiany.

1. Specyfikacja umiejętności

Ta umiejętność jest punktem początkowym. Używa go do przeprowadzenia z Tobą wywiadu i dopracowania architektury, zanim zostanie napisany jakikolwiek kod. Pozwala to uniknąć wielu godzin potencjalnie zmarnowanego kodowania.

Utwórz .agents/skills/write_specs.md:

# Skill: Write Specs

## Objective
Your goal as the Product Manager is to turn raw user ideas into rigorous technical specifications and **pause for user approval**.

## Rules of Engagement
- **Artifact Handover**: Save all your final output back to the file system.
- **Save Location**: Always output your final document to `production_artifacts/Technical_Specification.md`.
- **Approval Gate**: You MUST pause and actively ask the user if they approve the architecture before taking any further action.
- **Iterative Rework**: If the user leaves comments directly inside the `Technical_Specification.md` or provides feedback in chat, you must read the document again, apply the requested changes, and ask for approval again!

## Instructions
1. **Analyze Requirements**: Deeply analyze the user's initial idea request.
2. **Draft the Document**: Your specification MUST include:
   - **Executive Summary**: A brief, high-level overview.
   - **Requirements**: Functional and non-functional requirements.
   - **Architecture & Tech Stack**: Suggest the absolute best framework (e.g., Python/Django, Node/Express, React/Next.js) for the job and outline the layout/API structure.

   - **State Management**: Briefly outline how data should flow.
3. Save the document to disk.
4. **Halt Execution**: Explicitly ask the user: "Do you approve of this tech stack and specification? You can safely open `Technical_Specification.md` and add comments or modifications if you want me to rework anything!" Wait for their "Yes" or feedback before the sequence continues!

Zwróć uwagę na rygorystyczną „Bramę zatwierdzania”. Zamiast tworzyć całą aplikację od razu i mieć nadzieję, że będzie działać prawidłowo, AI ma wyraźne polecenie, aby wstrzymać działanie, poczekać na Twoją ostateczną decyzję i ponownie przeczytać dokument, jeśli zostawisz komentarze w tekście.

2. Umiejętność generowania pełnego stosu

Ta umiejętność jest podstawowym narzędziem do tworzenia. Agent inżynier odczytuje dokładny stos technologii ze specyfikacji PM i dynamicznie tworzy wszystkie niezbędne pliki kodu frontendu i backendu.

Utwórz .agents/skills/generate_code.md:

# Skill: Generate Code

## Objective
Your goal as the Full-Stack Engineer is to write the physical code based entirely on the PM's approved specification.

## Rules of Engagement
- **Dynamic Coding**: You are not limited to HTML/JS. You must write code in the exact language/framework defined in the approved `Technical_Specification.md`.
- **Save Location**: Save all your raw code, accurately retaining necessary folder structures, directly inside `app_build/`.

## Instructions
1. **Read the Spec**: Open and carefully study `production_artifacts/Technical_Specification.md`.
2. **Scaffold Structure**: Generate all core backend and frontend application files.
3. **Output**: Dump your code perfectly into the `app_build/` directory. Do not skip or summarize any code blocks. Ensure all `package.json` or `requirements.txt` files are present.

Ta umiejętność nie ma predefiniowanego stosu (np. Next.js czy Django). Jest ona ściśle związana z dynamicznym stosem technologicznym wybranym przez menedżera produktu. Oznacza to, że jedna umiejętność generowania kodu działa w przypadku dowolnego frameworka zatwierdzonego w specyfikacji.

3. Umiejętność kontroli

Ta umiejętność zapewnia dodatkową ochronę. Agent QA działa jako niezależny weryfikator, który ma za zadanie wyszukiwać brakujące zależności i błędy logiczne w nowo wygenerowanym kodzie.

Utwórz .agents/skills/audit_code.md:

# Skill: Audit Code

## Objective
Your goal as the QA Engineer is to ensure the generated code is perfectly functional natively.

## Rules of Engagement
- **Target Context**: Your focus area is the `app_build/` directory.

## Instructions
1. **Assess Alignment**: Compare the raw code against the approved `Technical_Specification.md`.
2. **Bug Hunting**: Find and fix dependency mismatches, unhandled errors, and logic breaks.
3. **Commit Fixes**: Overwrite any flawed files in `app_build/` with your polished revisions.

Generatywna AI naturalnie popełnia drobne błędy składniowe podczas pisania ogromnych ilości kodu. Dzięki oddzielnej umiejętności audytu, której jedynym zadaniem jest wyszukiwanie błędów, znacznie zwiększamy odsetek udanych uruchomień aplikacji.

4. Umiejętność dynamicznego wdrażania

Ta umiejętność ożywia aplikację. Agent DevOps określa, jaki typ aplikacji został utworzony (Node, Python itp.), i bezpiecznie uruchamia polecenia terminala potrzebne do zainstalowania modułów i uruchomienia serwera.

Utwórz .agents/skills/deploy_app.md:

# Skill: Deploy App

## Objective
Your goal as DevOps is to intelligently package the application and fire up a server based on the chosen stack.

## Instructions
1. **Stack Detection**: Inspect the `Technical_Specification.md` and the files in `app_build/` to figure out what stack is being used.

2. **Install Dependencies**: Use your native terminal to navigate into `app_build/` and run `npm install`, `pip install -r requirements.txt`, or whatever is appropriate!

3. **Host Locally**: Execute the appropriate native terminal command (e.g., `npm run dev`, `python3 app.py`) to start a background server.
4. **Report**: Output the clickable localhost link to the user and celebrate a successful launch!

Wykorzystujemy możliwość bezpiecznego uruchamiania natywnych poleceń terminala w IDE.

Agent działa jak prawdziwy inżynier DevOps, dynamicznie określając, które polecenie instalacji należy uruchomić na podstawie plików, które faktycznie widzi w folderze app_build/.

(Opcjonalnie) 5. Umiejętność wdrażania Cloud Run

Jeśli chcesz od razu wdrożyć aplikację w środowisku produkcyjnym, a nie tylko uruchamiać ją lokalnie, możesz utworzyć alternatywną umiejętność wdrażania. Antigravity działa bezpośrednio na Twoim komputerze lokalnym, więc AI może bezproblemowo korzystać z uwierzytelnionego lokalnie interfejsu wiersza poleceń gcloud.

Utwórz .agents/skills/deploy_cloud_run.md:

# Skill: Deploy to Cloud Run

## Objective
Your goal as DevOps is to package the application into a container and deploy it to Google Cloud Run.

## Instructions
1. **Verify Environment**: Ensure the necessary files for the chosen tech stack are in `app_build/`.
2. **Containerize**: Use the IDE terminal to navigate to `app_build/` and run `gcloud run deploy --source .`. 
3. **Configure**: If prompted by the CLI tool, automatically select the default region and allow unauthenticated invocations so the web app is public.
4. **Report**: Output the live production Google Cloud Run URL to the user!

5. Definiowanie niestandardowego polecenia po ukośniku

Do czego służy niestandardowe polecenie po ukośniku?

Zapisując ten plik tekstowy w folderze .agents/workflows/ , rejestrujesz zupełnie nowe polecenie bezpośrednio w interfejsie czatu Antigravity.

Zamiast ręcznie wydawać AI poleceń krok po kroku („Wciel się w rolę menedżera produktu i napisz specyfikację…”, a potem „OK, teraz wciel się w rolę inżyniera i napisz kod…”) /startcycle działa jako automatyczny koordynator. Bezproblemowo łączy zdefiniowane profile i ich konkretne umiejętności w ciągłą, zautomatyzowaną sekwencję. Utworzymy pojedyncze makro, które będzie obsługiwać przekazywanie rozmowy między agentami, jawnie zarządzając pętlą ponownej pracy w fazie PM.

Utwórz .agents/workflows/startcycle.md:

---
description: Start the Autonomous AI Developer Pipeline sequence with a new idea
---

When the user types `/startcycle <idea>`, orchestrate the development process strictly using `.agents/agents.md` and `.agents/skills/`.

### Execution Sequence:
1. Act as the **Product Manager** and execute the `write_specs.md` skill using the `<idea>`.
   *(Wait for the user to explicitly approve the spec. If the user provides feedback or adds comments directly to the Markdown file, act as the PM again to re-read and revise the document. Loop this step until they type "Approved").*
2. Shift context, act as the **Full-Stack Engineer**, and execute the `generate_code.md` skill.
3. Shift context, act as the **QA Engineer**, and execute the `audit_code.md` skill.
4. Shift context, act as the **DevOps Master**, and execute the `deploy_app.md` skill.

Upewnij się, że folder wygląda tak:

de21eeb6012ddbcd.png

6. Rozpocznij reakcję łańcuchową!

Gdy zespół i reguły zostaną oficjalnie określone w Antigravity, możesz bez wysiłku uruchomić cały przepływ pracy.

Prompt Antigravity:

  1. W oknie czatu Menedżera agentów wpisz / , aby otworzyć menu poleceń niestandardowych. Wybierz lub wpisz startcycle.
  2. Podaj swój pomysł:
/startcycle "I need a fast, real-time chat application for customer support on my ecommerce website."

Współpraca bez wstawania z miejsca:

  1. Gemini przejmuje rolę menedżera produktu, tworzy szczegółową specyfikację i prosi Cię o zatwierdzenie.
  2. Otwórz plik Technical_Specification.md w edytorze IDE, dodaj kilka notatek (np. „Użyjmy Pythona zamiast Node”) i poproś agenta o przerobienie kodu. Samodzielnie poprawi plik.
  3. Gdy zatwierdzisz specyfikację, Gemini automatycznie przekazuje kontekst do inżyniera, który na podstawie zatwierdzonej specyfikacji pisze kod backendu lub frontendu.
  4. Staje się inżynierem ds. kontroli jakości, naprawia błędy i zapisuje ostateczny kod.
  5. Na koniec DevOps Master dynamicznie instaluje moduły i wyświetla aplikację w przeglądarce.

Przykładowe uruchomienie Technical_Specification.md i oczekiwanie na zatwierdzenia lub komentarze

11defe4c48e874cc.png

Po zatwierdzeniu przez użytkownika prośby rozpoczyna się cały proces.

b9af07291806ae60.png

7. Podsumowanie i dalsze kroki

Gratulacje! Wiesz już, jak wstrzykiwać pętle iteracji współpracy i dynamiczne generowanie aplikacji pełnostosowych do potoku agenta.

W tym Codelabie omówiliśmy te tematy:

  • Jak mapować persony AI za pomocą pliku .agents/agents.md.
  • Twórz w .agents/skills/write_specs.md wspólne pętle ponownego przetwarzania, aby agent odczytywał Twoje komentarze w formacie Markdown.
  • Stworzyliśmy dynamiczne .md umiejętności, które piszą kod w dowolnej platformie (Python, React) w zależności od zatwierdzonej specyfikacji.