Preskoči na sadržaj

Kako se Biblija automatski ažurira?

TL;DR

update-bible pipeline koristi Claude agentic step da automatski održava docs/bible/docs/ u sync-u sa code promjenama na main. Trigger: repository-push na main, osim kad push dira samo docs/bible/ (changesetExclude). Miješani push (bible + non-bible fajlovi) i dalje okida. Agent otvara PR sa potrebnim ažuriranjima.

Pipeline flow

flowchart LR
    A[Push na main] --> B{Sve izmjene\nu docs/bible/?}
    B -->|Ne - postoji non-bible| C[update-bible\npipeline]
    B -->|Da - samo bible| D[Preskače se\n(nema petlje)]
    C --> E[render-bible-settings]
    E --> F[update-bible\nagent step]
    F --> G{Agent našao\nšta ažurirati?}
    G -->|Da| H[PR sa\nažuriranjem]
    G -->|Ne| I[Čist exit\nbez PR-a]

Trigger uslov

U bitbucket-pipelines.yml:

triggers:
  repository-push:
    - condition: BITBUCKET_BRANCH == "main" && changesetExclude("docs/bible/**")
      pipelines:
        - update-bible

changesetExclude("docs/bible/**") vraća true kad barem jedan promijenjeni fajl nije u docs/bible/. Zato: čisto-bible push (svi fajlovi u docs/bible/) se preskače, a miješani push (bible + non-bible) i dalje okida agenta. Ovo sprečava beskonačnu petlju — agent commituje samo u docs/bible/, pa njegov vlastiti push ne okida pipeline ponovo.

Dva step-a

1. Render Bible agent settings

ci/claude/render_ci_settings.py generiše .claude/settings.local.json sa model routing konfiguracijom (isti pattern kao review agent). Artifact se predaje agent step-u.

2. Update Bible agent

Agentic step koji:

  1. Pregleda triggering diff (promjene van docs/bible/)
  2. Identificira koncepte, servise, CLI flag-ove, env var-ove, JSON schema-e, make target-e, vendor integracije, ili invariant-e koji trebaju biti dokumentovani
  3. Ako treba ažuriranje:
  4. Edituje/kreira Markdown stranice pod docs/bible/docs/
  5. Prati docs/bible/CLAUDE.md konvencije (bosanski/srpski/hrvatski)
  6. Dodaje nove skraćenice u docs/includes/abbreviations.md
  7. Dodaje nove stranice u mkdocs.yml nav
  8. Verificira build (mkdocs build, non-strict)
  9. Kreira branch, commit, push, i otvara PR
  10. Ako ne treba ažuriranje: čist exit

Auth

Agent step koristi update-bible-auth autentifikaciju:

- authentication: &update-bible-auth
    system:
      scopes:
        - write:repository:bitbucket
        - read:pullrequest:bitbucket
        - write:pullrequest:bitbucket

Potrebni scope-ovi za kreiranje branch-a, push-a, i PR-a.

Branch konvencija

Agent kreira branch u formatu: bible/auto-update-<topic>-$BITBUCKET_BUILD_NUMBER

Šta agent NE radi

  • Ne dira fajlove van docs/bible/
  • Ne push-a direktno na main
  • Ne stavlja secretse u commitove ili PR-ove
  • Ne popravlja poznate TBD stranice (to je planirani rad, ne automatski)

Vidi i