kortext 2.2.3 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +175 -65
- package/agents/architect.md +85 -0
- package/agents/compliance-expert.md +36 -75
- package/agents/copywriter.md +36 -92
- package/agents/db-admin.md +43 -91
- package/agents/designer.md +40 -77
- package/agents/devops-engineer.md +37 -113
- package/agents/growth-expert.md +45 -88
- package/agents/product-manager.md +38 -83
- package/agents/qa-engineer.md +51 -99
- package/agents/security-engineer.md +47 -92
- package/bin/kortext.js +2 -0
- package/dist/app.js +829 -0
- package/dist/cli-spawn.js +137 -0
- package/dist/daemon.js +40 -0
- package/dist/db.js +78 -0
- package/dist/design-preview.js +533 -0
- package/dist/docs.js +701 -0
- package/dist/engines.js +225 -0
- package/dist/index.js +109 -0
- package/dist/pick-directory.js +38 -0
- package/dist/projects.js +189 -0
- package/dist/readiness.js +288 -0
- package/dist/runner.js +771 -0
- package/dist/update.js +55 -0
- package/docs/CHANGELOG.md +11 -0
- package/package.json +53 -13
- package/templates/AGENTS.md +62 -0
- package/templates/docs/API.md +67 -0
- package/templates/docs/ARCHITECTURE.md +31 -0
- package/templates/docs/BRIEF.md +27 -0
- package/templates/docs/CONTENT.md +66 -0
- package/templates/docs/DATABASE.md +63 -0
- package/templates/docs/DESIGN.md +124 -0
- package/templates/docs/ENGINEERING.md +66 -0
- package/templates/docs/ENVIRONMENT.md +102 -0
- package/templates/docs/GROWTH.md +44 -0
- package/templates/docs/LEGAL.md +48 -0
- package/templates/docs/PRODUCT.md +43 -0
- package/templates/docs/SECURITY.md +65 -0
- package/templates/docs/STACK.md +57 -0
- package/templates/docs/STRUCTURE.md +73 -0
- package/templates/docs/TEST.md +62 -0
- package/ui/dist/assets/abnfDiagram-VCTEODGH-Bm7Q2BML.js +1 -0
- package/ui/dist/assets/arc-BV9hs0Hu.js +1 -0
- package/ui/dist/assets/architecture-7GRP2DOG-RckR3gBI.js +1 -0
- package/ui/dist/assets/architectureDiagram-5GKGNRK7-CHiJ6JFT.js +36 -0
- package/ui/dist/assets/array-BifhSqXX.js +1 -0
- package/ui/dist/assets/blockDiagram-I7D4REHJ-qCbaKVhd.js +129 -0
- package/ui/dist/assets/c4Diagram-7LVT6UL2-DidCDJrv.js +38 -0
- package/ui/dist/assets/channel-CNUQ11ne.js +1 -0
- package/ui/dist/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/ui/dist/assets/chunk-4HAMMTFA-CDGFjfVp.js +62 -0
- package/ui/dist/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/ui/dist/assets/chunk-75Z2AOVW-CbNT4sDh.js +2 -0
- package/ui/dist/assets/chunk-DU6HZSFF-Cq2BVv26.js +127 -0
- package/ui/dist/assets/chunk-F27PBJKO-CE365m0v.js +1 -0
- package/ui/dist/assets/chunk-FOHPRMQF-DHwB1DNv.js +161 -0
- package/ui/dist/assets/chunk-GMAD6QVW-DxWL1VC-.js +72 -0
- package/ui/dist/assets/chunk-GVQU2GXP-aARV8YbK.js +1 -0
- package/ui/dist/assets/chunk-IMKFNOWR-CC790Kt2.js +231 -0
- package/ui/dist/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/ui/dist/assets/chunk-L3NEJ4N5-BfE4VE8J.js +1 -0
- package/ui/dist/assets/chunk-OSK3NFVY-BImQbSWH.js +10 -0
- package/ui/dist/assets/chunk-P2QGCYS3-CN3XD313.js +1 -0
- package/ui/dist/assets/chunk-POPQ4Y6H-Dqb6jOrX.js +1 -0
- package/ui/dist/assets/chunk-PWAF6VOD-DfXX6rBk.js +1 -0
- package/ui/dist/assets/chunk-SHT3W25Y-DATyyqPK.js +168 -0
- package/ui/dist/assets/chunk-SVP7TREG-r1chwRmg.js +88 -0
- package/ui/dist/assets/chunk-TICWLB2K-DL4atHUC.js +206 -0
- package/ui/dist/assets/chunk-XXDRQBXY-DXrM6jh7.js +1 -0
- package/ui/dist/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/ui/dist/assets/classDiagram-ZZMXUADV-BpQxfIQ7.js +1 -0
- package/ui/dist/assets/classDiagram-v2-VYDZK3BY-BpQxfIQ7.js +1 -0
- package/ui/dist/assets/cose-bilkent-JH36ORCC-Bhe-ZBlS.js +1 -0
- package/ui/dist/assets/cynefin-OW5HDTMX-D1koLd-G.js +1 -0
- package/ui/dist/assets/cynefinDiagram-5FMLGOSQ-BMcw40hV.js +62 -0
- package/ui/dist/assets/cytoscape.esm-CGd-uY3x.js +321 -0
- package/ui/dist/assets/dagre-GXQ25YYZ-DBun-Rs2.js +4 -0
- package/ui/dist/assets/dagre-PrKaheQc.js +1 -0
- package/ui/dist/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/ui/dist/assets/diagram-S7CK7UJ4-C1fUIGvo.js +30 -0
- package/ui/dist/assets/diagram-UQ7AKVKN-B5FDfkvB.js +41 -0
- package/ui/dist/assets/diagram-VSXAHHWV-CCIpOCNC.js +3 -0
- package/ui/dist/assets/diagram-VX7I27RA-DV0q2xo_.js +24 -0
- package/ui/dist/assets/diagram-Z3DM3KII-B3LCdNgI.js +24 -0
- package/ui/dist/assets/dist-EcW76Zvr.js +1 -0
- package/ui/dist/assets/ebnfDiagram-PWID7BFC-De_oRbYe.js +1 -0
- package/ui/dist/assets/erDiagram-RLTQ6QDP-B9NikMr1.js +99 -0
- package/ui/dist/assets/eventmodeling-NTZA5JFV-DZ4t581k.js +1 -0
- package/ui/dist/assets/flowDiagram-HODETNUW-DuTOJp1C.js +1 -0
- package/ui/dist/assets/ganttDiagram-EL5Y4UJY-BVTqqlPw.js +292 -0
- package/ui/dist/assets/gitGraph-4MIJSDKK-xRFaEJdZ.js +1 -0
- package/ui/dist/assets/gitGraphDiagram-WWUBYQGX-CK5_GCmX.js +106 -0
- package/ui/dist/assets/graphlib-DS17s2tU.js +1 -0
- package/ui/dist/assets/index-CjkpNftW.js +46 -0
- package/ui/dist/assets/index-DVIDTWin.css +1 -0
- package/ui/dist/assets/info-A6RAGUB7-Dg7z-CTI.js +1 -0
- package/ui/dist/assets/infoDiagram-27XIBGKW-YaqsOXh0.js +2 -0
- package/ui/dist/assets/init-C-OQMol4.js +1 -0
- package/ui/dist/assets/ishikawaDiagram-5VMMS53U-C-wtxZPa.js +70 -0
- package/ui/dist/assets/journeyDiagram-3NMN7TZE-DsXSXf16.js +139 -0
- package/ui/dist/assets/kanban-definition-UXKFOSKX-Ct59fuWk.js +89 -0
- package/ui/dist/assets/katex-CXMH3UgJ.js +257 -0
- package/ui/dist/assets/line-BUVw9Mhs.js +1 -0
- package/ui/dist/assets/linear-D8ncLO0X.js +1 -0
- package/ui/dist/assets/mermaid-parser.core-BDC4bG-O.js +7 -0
- package/ui/dist/assets/mermaid.core-DZY3WwzX.js +44 -0
- package/ui/dist/assets/mindmap-definition-YA3MSWOX-DtiuF6Ce.js +96 -0
- package/ui/dist/assets/ordinal-BDEzSJ7C.js +1 -0
- package/ui/dist/assets/packet-AYTQ26CC-BX2-w9rD.js +1 -0
- package/ui/dist/assets/path-fybaL0A-.js +1 -0
- package/ui/dist/assets/pegDiagram-XKGWAZYB-CotwuIHB.js +1 -0
- package/ui/dist/assets/pie-WAS4IAKB-Hth8ZVpm.js +1 -0
- package/ui/dist/assets/pieDiagram-E7YTZNPT-D9-INs8B.js +39 -0
- package/ui/dist/assets/quadrantDiagram-AXDQQJYC-CMtBXZGV.js +7 -0
- package/ui/dist/assets/radar-RG4KPBEZ-6UuwQPsw.js +1 -0
- package/ui/dist/assets/railroad-74A4TZTK-BF5TZgj0.js +1 -0
- package/ui/dist/assets/railroad-abnf-HS5TGJTU-3KYovtYT.js +1 -0
- package/ui/dist/assets/railroad-ebnf-LZEXJU2U-DeP4WedE.js +1 -0
- package/ui/dist/assets/railroad-peg-WCYAUIDC-i42N1-yk.js +1 -0
- package/ui/dist/assets/railroadDiagram-O6MQD6OU-BS6zkU3Z.js +1 -0
- package/ui/dist/assets/requirementDiagram-BXWQKSXE-J4IOB-kP.js +84 -0
- package/ui/dist/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/ui/dist/assets/sankeyDiagram-P5KCCOFB-jYTCuYzQ.js +40 -0
- package/ui/dist/assets/sequenceDiagram-WJ2MYXX4-Cd2r6PW-.js +162 -0
- package/ui/dist/assets/sizeCapture-INFHLROL-B0uUizjq.js +1 -0
- package/ui/dist/assets/src-7TsfZXRO.js +1 -0
- package/ui/dist/assets/stateDiagram-D77RDMKH-DXOdtOKe.js +1 -0
- package/ui/dist/assets/stateDiagram-v2-MP3YSRHH-9h7sIf3R.js +1 -0
- package/ui/dist/assets/swimlanes-42K2YHIH-BvJGmGs1.js +1 -0
- package/ui/dist/assets/swimlanesDiagram-VR7AAH4N-QA4gPi6a.js +8 -0
- package/ui/dist/assets/timeline-definition-24CTP7MA-CAaD6-yd.js +120 -0
- package/ui/dist/assets/treeView-Q6P3EWNA-4gDEXIyJ.js +1 -0
- package/ui/dist/assets/treemap-WGGIJYW6-CGel5TwW.js +1 -0
- package/ui/dist/assets/vennDiagram-4TSXK5OY-DpxsKboL.js +34 -0
- package/ui/dist/assets/wardley-WFR3VGLG-Ck38v5ns.js +1 -0
- package/ui/dist/assets/wardleyDiagram-VM6X3IG4-Ba0grrqs.js +78 -0
- package/ui/dist/assets/xychartDiagram-S5SC5T6Z-DH_gC96K.js +7 -0
- package/ui/dist/index.html +13 -0
- package/ui/dist/kortext-logo-dark.svg +41 -0
- package/ui/dist/kortext-logo.svg +41 -0
- package/workflows/existing-project-analysis.md +87 -0
- package/workflows/new-project-analysis.md +98 -0
- package/workflows/planning-pipeline.md +61 -0
- package/AGENTS.md +0 -28
- package/agents/backend-developer.md +0 -132
- package/agents/delivery-manager.md +0 -121
- package/agents/engineering-manager.md +0 -208
- package/agents/frontend-developer.md +0 -174
- package/agents/operation-manager.md +0 -122
- package/hooks/audit-logger.sh +0 -25
- package/hooks/auto-locker.sh +0 -74
- package/hooks/auto-unlocker.sh +0 -17
- package/hooks/backlog-sync-guard.sh +0 -12
- package/hooks/branch-guard.sh +0 -32
- package/hooks/commit-msg-guard.sh +0 -43
- package/hooks/git-pre-commit.sh +0 -76
- package/hooks/git-pre-push.sh +0 -17
- package/hooks/handover-guard.sh +0 -33
- package/hooks/kortext-init.sh +0 -194
- package/hooks/kortext-lib.sh +0 -151
- package/hooks/lint-guard.sh +0 -50
- package/hooks/secret-scanner.sh +0 -89
- package/hooks/size-guard.sh +0 -48
- package/hooks/snapshot-guard.sh +0 -39
- package/hooks/write-guard.sh +0 -77
- package/rules/behavior.md +0 -252
- package/rules/branching.md +0 -82
- package/rules/commands.md +0 -112
- package/rules/emergency.md +0 -160
- package/rules/mcp.md +0 -47
- package/rules/models.md +0 -93
- package/scripts/kortext-backlog-add.py +0 -123
- package/scripts/kortext-backlog-health.py +0 -112
- package/scripts/kortext-backlog-sync.py +0 -117
- package/scripts/kortext-bulk-plan.py +0 -63
- package/scripts/kortext-cli.py +0 -376
- package/scripts/kortext-consistency-check.py +0 -74
- package/scripts/kortext-context-check.py +0 -146
- package/scripts/kortext-handover.py +0 -107
- package/scripts/kortext-item-check.py +0 -61
- package/scripts/kortext-item-start.py +0 -70
- package/scripts/kortext-item-transition.py +0 -78
- package/scripts/kortext-lock.py +0 -174
- package/scripts/kortext-session-start.py +0 -127
- package/scripts/lock_kortext.sh +0 -34
- package/settings/.claude-settings.template.json +0 -48
- package/settings/CHANGELOG.md +0 -176
- package/settings/INTEGRATION-MAP.md +0 -276
- package/settings/README.md +0 -255
- package/settings/USER-GUIDE.md +0 -502
- package/settings/VERSION +0 -1
- package/settings/config.md +0 -8
- package/settings/runtime-adapters.md +0 -104
- package/skills/backend-developer/.gitkeep +0 -0
- package/skills/compliance-expert/.gitkeep +0 -0
- package/skills/copywriter/.gitkeep +0 -0
- package/skills/db-admin/.gitkeep +0 -0
- package/skills/delivery-manager/.gitkeep +0 -0
- package/skills/designer/.gitkeep +0 -0
- package/skills/devops-engineer/.gitkeep +0 -0
- package/skills/engineering-manager/.gitkeep +0 -0
- package/skills/frontend-developer/.gitkeep +0 -0
- package/skills/growth-expert/.gitkeep +0 -0
- package/skills/operation-manager/.gitkeep +0 -0
- package/skills/product-manager/.gitkeep +0 -0
- package/skills/qa-engineer/.gitkeep +0 -0
- package/skills/security-engineer/.gitkeep +0 -0
- package/workflows/00-kortext-setup.md +0 -53
- package/workflows/01a-analysis-pipeline.md +0 -117
- package/workflows/01b-onboarding-pipeline.md +0 -110
- package/workflows/02-planning-pipeline.md +0 -146
- package/workflows/02b-spike-workflow.md +0 -120
- package/workflows/03-environment-setup.md +0 -99
- package/workflows/04-development-cycle.md +0 -203
- package/workflows/05-test-cycle.md +0 -123
- package/workflows/06-deployment-cycle.md +0 -224
- package/workflows/07-rollback-pipeline.md +0 -203
- package/workflows/08-hotfix-pipeline.md +0 -196
- package/workflows/09-maintenance-cycle.md +0 -133
- package/workspace/archive/.gitkeep +0 -0
- package/workspace/backups/.gitkeep +0 -0
- package/workspace/memory/backlog/.gitkeep +0 -0
- package/workspace/memory/backlog/BXX-[bug-name].md +0 -2
- package/workspace/memory/backlog/DXX-[debt-name].md +0 -2
- package/workspace/memory/backlog/README.md +0 -31
- package/workspace/memory/backlog/TXX-[task-name].md +0 -2
- package/workspace/memory/backlog/debt-dashboard.md +0 -3
- package/workspace/memory/backlog/epic-dashboard.md +0 -10
- package/workspace/memory/backlog/version-dashboard.md +0 -7
- package/workspace/memory/context/.gitkeep +0 -0
- package/workspace/memory/context/README.md +0 -35
- package/workspace/memory/context/[agent-name]-active.md +0 -2
- package/workspace/memory/decisions.md +0 -17
- package/workspace/memory/handover.md +0 -40
- package/workspace/memory/learned.md +0 -21
- package/workspace/references/access.md +0 -47
- package/workspace/references/api-reference.md +0 -59
- package/workspace/references/blueprint.md +0 -29
- package/workspace/references/content-strategy.md +0 -39
- package/workspace/references/db-schema.md +0 -51
- package/workspace/references/design-system.md +0 -107
- package/workspace/references/dictionary.md +0 -42
- package/workspace/references/file-system.md +0 -42
- package/workspace/references/growth-strategy.md +0 -46
- package/workspace/references/legal-strategy.md +0 -35
- package/workspace/references/required-skills.md +0 -11
- package/workspace/references/security-rules.md +0 -34
- package/workspace/references/tech-stack.md +0 -49
- package/workspace/references/test-strategy.md +0 -48
- package/workspace/reports/analysis-reports.md +0 -40
- package/workspace/reports/content-reports.md +0 -29
- package/workspace/reports/delivery-reports.md +0 -26
- package/workspace/reports/growth-reports.md +0 -9
- package/workspace/reports/legal-reports.md +0 -29
- package/workspace/reports/product-requirements.md +0 -28
- package/workspace/reports/release-notes.md +0 -20
- package/workspace/reports/security-reports.md +0 -27
- package/workspace/reports/status-reports.md +0 -48
- package/workspace/reports/tech-requirements.md +0 -30
- package/workspace/reports/test-reports.md +0 -61
- package/workspace/templates/BXX-[bug-name].md +0 -34
- package/workspace/templates/DXX-[debt-name].md +0 -35
- package/workspace/templates/EXX-[epic-name].md +0 -48
- package/workspace/templates/HXX-[hotfix-name].md +0 -73
- package/workspace/templates/SXX-[spike-name].md +0 -51
- package/workspace/templates/TXX-[task-name].md +0 -34
- package/workspace/templates/[agent-name]-active.md +0 -4
- package/workspace/templates/[original-name]_[YYYY-MM-DD_HHMMSS].md +0 -5
- package/workspace/templates/adr-XXX.md +0 -66
- package/workspace/templates/debt-dashboard.md +0 -10
- package/workspace/templates/epic-dashboard.md +0 -10
- package/workspace/templates/version-dashboard.md +0 -10
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# operation-manager
|
|
2
|
-
|
|
3
|
-
- description: Sistemin genel işleyişinden, verimliliğinden ve orkestrasyondan sorumludur. Tüm tepe görev dağılımlarını yapar, personaların çalışma performansını ve ekipler arası iletişim pürüzlerini denetler. Tüm operasyonel süreçleri yönetir. Görevlerin açılması, atanması ve statü takibinden sorumludur.
|
|
4
|
-
|
|
5
|
-
## identity
|
|
6
|
-
|
|
7
|
-
Sen operasyon yöneticisisin. +prime'ın vizyonunu operasyonlara çevir, tüm departmanların uyumlu çalışmasını sağla. Detaylara gömülme, darboğazları tespit et ve çöz. Her görevin doğru personaya atanmasını, zamanında ilerlemesini ve hiçbir işin kaybolmamasını sağla. Engelleri kaldır, süreci akıcı tut.
|
|
8
|
-
|
|
9
|
-
## purpose
|
|
10
|
-
|
|
11
|
-
+prime'ın direktifleri doğrultusunda tüm personaların koordinasyonunu sağla. Tepe görev dağılımlarını yap, ekipler arası iletişim sürtünmelerini çöz, performansı izle ve sistemin verimli çalışmasını garanti et.
|
|
12
|
-
`workspace/memory/backlog/` altındaki düz takip yapısı üzerindeki tüm operasyonel süreçleri yönet. `kortext-bulk-plan.py` ve `kortext-backlog-add.py` araçlarını kullanarak Epic, Task ve Bug'ların açılması, ilgili personaya atanması, ilişkilerinin kurgulanması ve statü takibinden sorumlu ol. Versiyon yönetimi ve bildirilen Bug'ların işlenmesi gibi akışları denetleyerek ekibin önündeki engelleri kaldır.
|
|
13
|
-
|
|
14
|
-
## when to use
|
|
15
|
-
|
|
16
|
-
- Komut verildiğinde → Tüm sürecin orkestrasyonunu başlat
|
|
17
|
-
- Ekipler arası koordinasyon gerektiğinde → Darboğazları çöz, öncelikleri belirle
|
|
18
|
-
- Periyodik durum raporlaması gerektiğinde → `workspace/reports/status-reports.md` hazırla
|
|
19
|
-
- Eskalasyon geldiğinde → Manager personalardan gelen çözümsüz sorunlarda son karar verici ol
|
|
20
|
-
- Kaynak çakışması veya öncelik çatışması olduğunda → Çatışmayı çöz ve tahsisi yap
|
|
21
|
-
- +prime stratejik bir yön değişikliği bildirdiğinde → Tüm departmanlara yay ve uygulat
|
|
22
|
-
- Token kullanımı veya maliyet optimizasyonu gerektiren durumlarda
|
|
23
|
-
- Ekibin önündeki blokajları çözmek gerektiğinde
|
|
24
|
-
|
|
25
|
-
## constraints
|
|
26
|
-
|
|
27
|
-
- +prime'ın vizyonu ve stratejik kararları ile çelişen yönlendirme yapma
|
|
28
|
-
- Teknik uzmanlık gerektiren kararlara müdahale etme — yetkinlik alanını aşma (teknik kararlar +engineering-manager'a, güvenlik +security-engineer'a ait)
|
|
29
|
-
- Personaların yetki alanına müdahale etme — denetim yap ama işi yaptır
|
|
30
|
-
- Kod yazma veya doğrudan teknik çıktı üretme
|
|
31
|
-
|
|
32
|
-
### decision authority
|
|
33
|
-
> Bkz. `rules/behavior.md`
|
|
34
|
-
|
|
35
|
-
- **[tactical]** Görev atama, önceliklendirme ve kaynak çakışması çözümü kararlarını bağımsız alabilir.
|
|
36
|
-
- **[strategic]** Bütçe/kaynak etkisi olan kararlar +prime onayı gerektirir.
|
|
37
|
-
|
|
38
|
-
## chain of command
|
|
39
|
-
|
|
40
|
-
- **Rapor verir:** +prime
|
|
41
|
-
- **Ona rapor verenler:** +delivery-manager (release planlaması), +engineering-manager (kaynak planlaması ve görev dağılımı koordinasyonu), +product-manager
|
|
42
|
-
- **Çıkmaz durumda:** +prime'a eskalasyon yap.
|
|
43
|
-
|
|
44
|
-
### raci matrix
|
|
45
|
-
|
|
46
|
-
| Görev | operation-manager | Diğer |
|
|
47
|
-
| ------------------------------------------------------- | ----------------- | ------------------------------------------------------------------ |
|
|
48
|
-
| Sistem orkestrasyonu | **R/A** | +prime: I |
|
|
49
|
-
| Tepe görev dağılımı | **R/A** | +product-manager: I, +engineering-manager: I, +delivery-manager: I |
|
|
50
|
-
| Durum raporlama (`workspace/reports/status-reports.md`) | **R/A** | +prime: I |
|
|
51
|
-
| Departmanlar arası çatışma çözümü | **R/A** | İlgili manager'lar: C |
|
|
52
|
-
| Performans izleme ve maliyet optimizasyonu | **R/A** | +prime: I |
|
|
53
|
-
| Eskalasyon yönetimi | **R/A** | +prime: A (son karar) |
|
|
54
|
-
| Kickoff süreci orkestrasyonu | **R** | +prime: A |
|
|
55
|
-
| Görev statüsü takibi | **R/A** | Tüm personalar: I |
|
|
56
|
-
|
|
57
|
-
## skills
|
|
58
|
-
|
|
59
|
-
- Çok ekipli proje orkestrasyonu ve kaynak yönetimi
|
|
60
|
-
- Departmanlar arası iletişim koordinasyonu
|
|
61
|
-
- Performans metriği belirleme ve izleme
|
|
62
|
-
- Darboğaz analizi ve çözüm üretme
|
|
63
|
-
- Eskalasyon yönetimi ve çatışma çözümü
|
|
64
|
-
- Token/maliyet optimizasyonu
|
|
65
|
-
- Durumsal karar alma ve önceliklendirme
|
|
66
|
-
- Konsolide raporlama
|
|
67
|
-
- Stakeholder raporlaması
|
|
68
|
-
|
|
69
|
-
### advanced skills
|
|
70
|
-
|
|
71
|
-
`skills/operation-manager/`
|
|
72
|
-
|
|
73
|
-
## instructions
|
|
74
|
-
|
|
75
|
-
### 0. Prerequisites
|
|
76
|
-
|
|
77
|
-
Göreve başlamadan önce `workspace/memory/context/` dizinindeki tüm aktif görev dosyalarını ve `workspace/memory/handover.md` dosyasını oku. Diğer ajanların durumunu anla. Eğer proje yeni başlıyorsa aşağıdaki tüm listeyi oku:
|
|
78
|
-
|
|
79
|
-
- `workspace/reports/status-reports.md`
|
|
80
|
-
- `workspace/reports/analysis-reports.md`
|
|
81
|
-
- `workspace/memory/backlog/` dizinini
|
|
82
|
-
|
|
83
|
-
### 1. Orchestration & Task Assignment
|
|
84
|
-
**Kategori:** `deep-research`
|
|
85
|
-
|
|
86
|
-
+prime'dan gelen direktif veya projenin mevcut durumu doğrultusunda:
|
|
87
|
-
1. Tüm departman yöneticilerinden (+product-manager, +engineering-manager, +delivery-manager) güncel durum al
|
|
88
|
-
2. Öncelikleri belirle ve kaynak çakışmalarını çöz
|
|
89
|
-
3. Görev dağılımını ilgili manager personalarına ilet
|
|
90
|
-
4. `workspace/memory/context/operation-manager-active.md` dosyasını güncelle
|
|
91
|
-
|
|
92
|
-
### 2. Kickoff Orchestration
|
|
93
|
-
**Kategori:** `deep-research`
|
|
94
|
-
|
|
95
|
-
Komut geldiğinde `workflows/01a-analysis-pipeline.md` akışını yönet:
|
|
96
|
-
1. Analysis & Planning aşamasında her personanın çıktısını kontrol et
|
|
97
|
-
2. Konsolidasyon adımında tüm raporları birleştirerek `workspace/reports/analysis-reports.md` hazırla
|
|
98
|
-
3. Sonuçları +prime'a sun ve onay bekle
|
|
99
|
-
|
|
100
|
-
### 3. Status Reporting
|
|
101
|
-
**Kategori:** `routine`
|
|
102
|
-
|
|
103
|
-
Periyodik olarak veya +prime talebiyle:
|
|
104
|
-
1. Tüm departmanlardan (+product-manager, +engineering-manager, +delivery-manager) veri topla
|
|
105
|
-
2. Darboğazları, riskleri ve ilerlemeyi özetle
|
|
106
|
-
3. `workspace/reports/status-reports.md` dosyasını güncelle
|
|
107
|
-
4. +prime'a sun
|
|
108
|
-
|
|
109
|
-
### 4. Escalation Management
|
|
110
|
-
**Kategori:** `routine`
|
|
111
|
-
|
|
112
|
-
Manager personalardan gelen çözümsüz sorunlarda:
|
|
113
|
-
1. Sorunu ve denenen çözümleri analiz et
|
|
114
|
-
2. Alternatif çözümler üret veya kaynak yeniden tahsisi yap
|
|
115
|
-
3. Çözüm üretilemezse +prime'a eskalasyon yap
|
|
116
|
-
4. Kararı `workspace/memory/decisions.md` dosyasına kaydet (yetki alanındaki kararlar için)
|
|
117
|
-
|
|
118
|
-
## artifacts
|
|
119
|
-
|
|
120
|
-
- `workspace/memory/backlog/` dizini
|
|
121
|
-
- `workspace/reports/status-reports.md` (Agent Performance + Token & Maliyet bölümleri dahil)
|
|
122
|
-
- `workspace/reports/analysis-reports.md`
|
package/hooks/audit-logger.sh
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] İşlem Günlüğü (Audit Logger)
|
|
4
|
-
|
|
5
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
-
# shellcheck source=kortext-lib.sh
|
|
7
|
-
source "$SCRIPT_DIR/kortext-lib.sh"
|
|
8
|
-
|
|
9
|
-
LOG_FILE="$KORTEXT_WORKSPACE_DIR/reports/audit.log"
|
|
10
|
-
TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
|
|
11
|
-
|
|
12
|
-
# Çevresel değişkenlerden bilgileri çek (Casing ve isim kullandığın AI arayüzüne göre değişebilir)
|
|
13
|
-
ACTION_FILE="${KORTEXT_FILE_PATH:-${CLAUDE_FILE_PATH:-${GEMINI_FILE_PATH:-${OPENAI_FILE_PATH:-N/A}}}}"
|
|
14
|
-
LAST_CMD="${KORTEXT_LAST_CMD:-${CLAUDE_LAST_COMMAND:-${GEMINI_LAST_ACTION:-${OPENAI_LAST_COMMAND:-N/A}}}}"
|
|
15
|
-
AGENT_NAME="${KORTEXT_AGENT_NAME:-${CLAUDE_AGENT_NAME:-${GEMINI_AGENT_NAME:-${OPENAI_AGENT_NAME:-Agent}}}}"
|
|
16
|
-
|
|
17
|
-
mkdir -p "$KORTEXT_WORKSPACE_DIR/reports"
|
|
18
|
-
|
|
19
|
-
# Kayıt Satırı Oluştur
|
|
20
|
-
LOG_ENTRY="[$TIMESTAMP] | AGENT: $AGENT_NAME | FILE: $ACTION_FILE | CMD: $LAST_CMD"
|
|
21
|
-
|
|
22
|
-
# Dosyaya ekle
|
|
23
|
-
echo "$LOG_ENTRY" >> "$LOG_FILE"
|
|
24
|
-
|
|
25
|
-
exit 0
|
package/hooks/auto-locker.sh
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Otomatik Dosya Kilidi (Pre-Edit)
|
|
4
|
-
|
|
5
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
-
# shellcheck source=kortext-lib.sh
|
|
7
|
-
source "$SCRIPT_DIR/kortext-lib.sh"
|
|
8
|
-
|
|
9
|
-
kortext_load_config
|
|
10
|
-
# Dakika cinsinden lock timeout (shell fallback için). Default 5 dakika.
|
|
11
|
-
KORTEXT_LOCK_TIMEOUT_MIN="${KORTEXT_LOCK_TIMEOUT_MIN:-5}"
|
|
12
|
-
KORTEXT_HOOK_MODE="${KORTEXT_HOOK_MODE:-permissive}"
|
|
13
|
-
|
|
14
|
-
FILE_PATH="${KORTEXT_FILE_PATH:-${CLAUDE_FILE_PATH:-${GEMINI_FILE_PATH:-${OPENAI_FILE_PATH:-}}}}"
|
|
15
|
-
AGENT_NAME="${KORTEXT_AGENT:-unknown-agent}"
|
|
16
|
-
|
|
17
|
-
if [ -z "$FILE_PATH" ]; then
|
|
18
|
-
if [ "$KORTEXT_HOOK_MODE" = "strict" ]; then
|
|
19
|
-
echo "⚠️ [KORTEXT] KORTEXT_FILE_PATH tanımsız. strict modda çıkılıyor."
|
|
20
|
-
exit 1
|
|
21
|
-
fi
|
|
22
|
-
exit 0
|
|
23
|
-
fi
|
|
24
|
-
|
|
25
|
-
# Sadece ortak hafıza dosyaları için kilit çalıştır
|
|
26
|
-
if [[ "$FILE_PATH" == *"context.md" ]] || [[ "$FILE_PATH" == *"backlog/"* ]] || [[ "$FILE_PATH" == *"handover.md" ]]; then
|
|
27
|
-
|
|
28
|
-
# --- Python lock (kortext-lock.py) ile entegrasyon ---
|
|
29
|
-
LOCK_PY="$KORTEXT_DIR/scripts/kortext-lock.py"
|
|
30
|
-
if command -v python3 &>/dev/null && [ -f "$LOCK_PY" ]; then
|
|
31
|
-
python3 "$LOCK_PY" acquire --file "$FILE_PATH" --agent "$AGENT_NAME" 2>/dev/null || {
|
|
32
|
-
# Python lock başarısız → shell lock'a düş
|
|
33
|
-
echo "⚠️ [KORTEXT] kortext-lock.py acquire başarısız. Shell kilit mekanizmasına geçiliyor."
|
|
34
|
-
}
|
|
35
|
-
else
|
|
36
|
-
# --- Shell-only fallback lock (flock tabanlı, race-free) ---
|
|
37
|
-
# flock(1) ile atomik bir guard alıp lock dosyasını oluştururuz.
|
|
38
|
-
# Böylece iki ajan eş zamanlı stale-kontrolü + create yaparken yarışmaz.
|
|
39
|
-
LOCK_DIR="$(dirname "$FILE_PATH")"
|
|
40
|
-
file_name="$(basename "$FILE_PATH")"
|
|
41
|
-
LOCK_FILE="$LOCK_DIR/${file_name}.lock"
|
|
42
|
-
GUARD_FILE="$LOCK_FILE.guard"
|
|
43
|
-
|
|
44
|
-
# Guard dosyasını fd 200'e bağla.
|
|
45
|
-
exec 200>"$GUARD_FILE"
|
|
46
|
-
|
|
47
|
-
if flock -n -x 200; then
|
|
48
|
-
# Atomik kontrol: kilit dosyası var mı?
|
|
49
|
-
if [ -f "$LOCK_FILE" ]; then
|
|
50
|
-
# Stale kontrolü: dakika cinsinden timeout aşıldıysa sil.
|
|
51
|
-
if find "$LOCK_FILE" -mmin +"$KORTEXT_LOCK_TIMEOUT_MIN" -print -quit 2>/dev/null | grep -q .; then
|
|
52
|
-
rm -f "$LOCK_FILE"
|
|
53
|
-
else
|
|
54
|
-
# Aktif kilit var, çakışma uyarısı.
|
|
55
|
-
flock -u 200
|
|
56
|
-
echo "---" >&2
|
|
57
|
-
echo "🔒 [KORTEXT] KILIT ÇAKIŞMASI" >&2
|
|
58
|
-
echo "$LOCK_FILE aktif olarak başka bir ajan tarafından kullanılıyor." >&2
|
|
59
|
-
echo "Timeout: ${KORTEXT_LOCK_TIMEOUT_MIN} dakika sonra stale sayılır." >&2
|
|
60
|
-
echo "+operation-manager'a eskalasyon yap." >&2
|
|
61
|
-
echo "---" >&2
|
|
62
|
-
exit 1
|
|
63
|
-
fi
|
|
64
|
-
fi
|
|
65
|
-
# Kilit içeriğine ajan ve zaman damgası yaz (epoch saniye).
|
|
66
|
-
echo "${KORTEXT_AGENT_NAME:-$AGENT_NAME}:$(date +%s)" > "$LOCK_FILE"
|
|
67
|
-
flock -u 200
|
|
68
|
-
else
|
|
69
|
-
echo "🔒 [KORTEXT] Guard kilit alınamadı: $GUARD_FILE" >&2
|
|
70
|
-
exit 1
|
|
71
|
-
fi
|
|
72
|
-
fi
|
|
73
|
-
fi
|
|
74
|
-
|
package/hooks/auto-unlocker.sh
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Otomatik Dosya Kilidi Kaldırma (Post-Edit)
|
|
4
|
-
|
|
5
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
-
# shellcheck source=kortext-lib.sh
|
|
7
|
-
source "$SCRIPT_DIR/kortext-lib.sh"
|
|
8
|
-
|
|
9
|
-
FILE_PATH="${KORTEXT_FILE_PATH:-${CLAUDE_FILE_PATH:-${GEMINI_FILE_PATH:-${OPENAI_FILE_PATH:-}}}}"
|
|
10
|
-
|
|
11
|
-
if [ -z "$FILE_PATH" ]; then exit 0; fi
|
|
12
|
-
|
|
13
|
-
LOCK_FILE="${FILE_PATH}.lock"
|
|
14
|
-
|
|
15
|
-
if [ -f "$LOCK_FILE" ]; then
|
|
16
|
-
rm "$LOCK_FILE"
|
|
17
|
-
fi
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Backlog dashboard/item drift guard.
|
|
4
|
-
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
# shellcheck source=kortext-lib.sh
|
|
9
|
-
source "$SCRIPT_DIR/kortext-lib.sh"
|
|
10
|
-
|
|
11
|
-
cd "$KORTEXT_DIR"
|
|
12
|
-
python3 scripts/kortext-backlog-sync.py
|
package/hooks/branch-guard.sh
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Branch Yönetimi ve Koruma
|
|
4
|
-
|
|
5
|
-
CURRENT_BRANCH=$(git branch --show-current 2>/dev/null)
|
|
6
|
-
|
|
7
|
-
# Eğer git olmayan bir yerdeyse çık
|
|
8
|
-
if [ -z "$CURRENT_BRANCH" ]; then exit 0; fi
|
|
9
|
-
|
|
10
|
-
# Behavior kuralı: "Asla doğrudan main ve development üzerinde çalışmayın."
|
|
11
|
-
if [[ "$CURRENT_BRANCH" == "main" ]] || [[ "$CURRENT_BRANCH" == "development" ]] || [[ "$CURRENT_BRANCH" == "master" ]]; then
|
|
12
|
-
echo "---"
|
|
13
|
-
echo "🚫 KORTEXT BRANCH KORUMASI"
|
|
14
|
-
echo "Hata: Şu an '$CURRENT_BRANCH' ana dalındasınız."
|
|
15
|
-
echo "Kortext kuralları gereği doğrudan bu dal üzerinde geliştirme yapamazsınız."
|
|
16
|
-
echo ""
|
|
17
|
-
echo "Lütfen yeni bir dal oluşturun:"
|
|
18
|
-
echo "git checkout -b feature/[task-id]"
|
|
19
|
-
echo "---"
|
|
20
|
-
exit 1
|
|
21
|
-
fi
|
|
22
|
-
|
|
23
|
-
# İsimlendirme standardı uyarısı (branching.md satır 17-23)
|
|
24
|
-
if [[ ! "$CURRENT_BRANCH" =~ ^(feature/|hotfix/|bugfix/|release/|chore/) ]]; then
|
|
25
|
-
echo ""
|
|
26
|
-
echo "⚠️ [KORTEXT UYARI]"
|
|
27
|
-
echo "Mevcut branch isimlendirmesi standart dışı ($CURRENT_BRANCH)."
|
|
28
|
-
echo "feature/[task-id] veya hotfix/[hata-adi] formatını kullanmanız önerilir."
|
|
29
|
-
echo ""
|
|
30
|
-
fi
|
|
31
|
-
|
|
32
|
-
exit 0
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Commit Mesajı Standart Kontrolü
|
|
4
|
-
|
|
5
|
-
# Git commit sırasında mesaj dosyası parametre olarak gelir
|
|
6
|
-
MSG_FILE="$1"
|
|
7
|
-
COMMIT_MSG=$(cat "$MSG_FILE" 2>/dev/null)
|
|
8
|
-
|
|
9
|
-
# Eğer direkt dosya yoksa ortam değişkenine bak (bazı araçlar için)
|
|
10
|
-
if [ -z "$COMMIT_MSG" ]; then
|
|
11
|
-
COMMIT_MSG="${KORTEXT_COMMIT_MSG:-${CLAUDE_COMMIT_MESSAGE:-${GEMINI_COMMIT_MESSAGE:-${OPENAI_COMMIT_MESSAGE:-}}}}"
|
|
12
|
-
fi
|
|
13
|
-
|
|
14
|
-
if [ -z "$COMMIT_MSG" ]; then exit 0; fi
|
|
15
|
-
|
|
16
|
-
# Conventional Commits formatı (feat, fix, docs, refactor, test, chore, style, perf)
|
|
17
|
-
# Örn: feat: add authentication
|
|
18
|
-
PATTERN="^(feat|fix|docs|refactor|test|chore|style|perf)(\(.+\))?!?: .+"
|
|
19
|
-
|
|
20
|
-
if [[ ! "$COMMIT_MSG" =~ $PATTERN ]]; then
|
|
21
|
-
echo "---"
|
|
22
|
-
echo "❌ KORTEXT COMMIT STANDARTLARI İHLALİ"
|
|
23
|
-
echo "Hata: Commit mesajı 'Conventional Commits' formatında değil."
|
|
24
|
-
echo "Kurallara uygun örnekler:"
|
|
25
|
-
echo " - feat: add logging system"
|
|
26
|
-
echo " - fix: resolve api timeout"
|
|
27
|
-
echo " - docs: update technical specifications"
|
|
28
|
-
echo ""
|
|
29
|
-
echo "Geçerli Mesajınız: $COMMIT_MSG"
|
|
30
|
-
echo "---"
|
|
31
|
-
exit 1
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
# İngilizce zorunluluğu kontrolü (Türkçe karakter araması)
|
|
35
|
-
if echo "$COMMIT_MSG" | grep -q "[çğışıöüÇĞİŞIÖÜ]"; then
|
|
36
|
-
echo ""
|
|
37
|
-
echo "⚠️ [KORTEXT UYARI]"
|
|
38
|
-
echo "Commit mesajında Türkçe karakterler tespit edildi."
|
|
39
|
-
echo "Kortext Behavior kuralları gereği commit mesajları İngilizce olmalıdır."
|
|
40
|
-
echo ""
|
|
41
|
-
fi
|
|
42
|
-
|
|
43
|
-
exit 0
|
package/hooks/git-pre-commit.sh
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Git pre-commit adapter.
|
|
4
|
-
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_PATH="${BASH_SOURCE[0]}"
|
|
8
|
-
while [ -L "$SCRIPT_PATH" ]; do
|
|
9
|
-
LINK_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
10
|
-
LINK_TARGET="$(readlink "$SCRIPT_PATH")"
|
|
11
|
-
case "$LINK_TARGET" in
|
|
12
|
-
/*) SCRIPT_PATH="$LINK_TARGET" ;;
|
|
13
|
-
*) SCRIPT_PATH="$LINK_DIR/$LINK_TARGET" ;;
|
|
14
|
-
esac
|
|
15
|
-
done
|
|
16
|
-
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
17
|
-
# shellcheck source=kortext-lib.sh
|
|
18
|
-
source "$SCRIPT_DIR/kortext-lib.sh"
|
|
19
|
-
kortext_load_config
|
|
20
|
-
|
|
21
|
-
cd "$KORTEXT_ROOT"
|
|
22
|
-
|
|
23
|
-
if ! git rev-parse --git-dir >/dev/null 2>&1; then
|
|
24
|
-
exit 0
|
|
25
|
-
fi
|
|
26
|
-
|
|
27
|
-
STATUS=0
|
|
28
|
-
TMP_DIR="$(mktemp -d)"
|
|
29
|
-
|
|
30
|
-
cleanup() {
|
|
31
|
-
rm -rf "$TMP_DIR"
|
|
32
|
-
}
|
|
33
|
-
trap cleanup EXIT
|
|
34
|
-
|
|
35
|
-
while IFS= read -r -d '' FILE_PATH; do
|
|
36
|
-
[ -n "$FILE_PATH" ] || continue
|
|
37
|
-
[ -f "$FILE_PATH" ] || continue
|
|
38
|
-
|
|
39
|
-
STAGED_COPY="$TMP_DIR/$(basename "$FILE_PATH")"
|
|
40
|
-
if git show ":$FILE_PATH" > "$STAGED_COPY" 2>/dev/null; then
|
|
41
|
-
if ! "$SCRIPT_DIR/secret-scanner.sh" --stdin "$FILE_PATH" < "$STAGED_COPY"; then
|
|
42
|
-
STATUS=1
|
|
43
|
-
fi
|
|
44
|
-
fi
|
|
45
|
-
|
|
46
|
-
if ! KORTEXT_FILE_PATH="$FILE_PATH" "$SCRIPT_DIR/lint-guard.sh"; then
|
|
47
|
-
STATUS=1
|
|
48
|
-
fi
|
|
49
|
-
|
|
50
|
-
if ! KORTEXT_FILE_PATH="$FILE_PATH" "$SCRIPT_DIR/size-guard.sh"; then
|
|
51
|
-
STATUS=1
|
|
52
|
-
fi
|
|
53
|
-
|
|
54
|
-
# Kritik dosyalar için anlık yedek al (snapshot-guard).
|
|
55
|
-
# Bu dosyalar ajanlar arası bilgi devrinin omurgası; commit öncesi son
|
|
56
|
-
# iyi-bilinen halini workspace/backups/ altına kopyalarız.
|
|
57
|
-
case "$FILE_PATH" in
|
|
58
|
-
workspace/memory/handover.md|\
|
|
59
|
-
workspace/memory/decisions.md|\
|
|
60
|
-
workspace/memory/learned.md|\
|
|
61
|
-
workspace/memory/context/*|\
|
|
62
|
-
workspace/references/*)
|
|
63
|
-
KORTEXT_FILE_PATH="$FILE_PATH" "$SCRIPT_DIR/snapshot-guard.sh" || true
|
|
64
|
-
;;
|
|
65
|
-
esac
|
|
66
|
-
done < <(kortext_staged_files)
|
|
67
|
-
|
|
68
|
-
if ! "$SCRIPT_DIR/backlog-sync-guard.sh"; then
|
|
69
|
-
STATUS=1
|
|
70
|
-
fi
|
|
71
|
-
|
|
72
|
-
if ! "$SCRIPT_DIR/handover-guard.sh"; then
|
|
73
|
-
STATUS=1
|
|
74
|
-
fi
|
|
75
|
-
|
|
76
|
-
exit "$STATUS"
|
package/hooks/git-pre-push.sh
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Git pre-push adapter.
|
|
4
|
-
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_PATH="${BASH_SOURCE[0]}"
|
|
8
|
-
while [ -L "$SCRIPT_PATH" ]; do
|
|
9
|
-
LINK_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
10
|
-
LINK_TARGET="$(readlink "$SCRIPT_PATH")"
|
|
11
|
-
case "$LINK_TARGET" in
|
|
12
|
-
/*) SCRIPT_PATH="$LINK_TARGET" ;;
|
|
13
|
-
*) SCRIPT_PATH="$LINK_DIR/$LINK_TARGET" ;;
|
|
14
|
-
esac
|
|
15
|
-
done
|
|
16
|
-
SCRIPT_DIR="$(cd "$(dirname "$SCRIPT_PATH")" && pwd)"
|
|
17
|
-
"$SCRIPT_DIR/branch-guard.sh"
|
package/hooks/handover-guard.sh
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Done item requires handover guard.
|
|
4
|
-
|
|
5
|
-
set -euo pipefail
|
|
6
|
-
|
|
7
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
8
|
-
# shellcheck source=kortext-lib.sh
|
|
9
|
-
source "$SCRIPT_DIR/kortext-lib.sh"
|
|
10
|
-
|
|
11
|
-
BACKLOG_DIR="$KORTEXT_WORKSPACE_DIR/memory/backlog"
|
|
12
|
-
HANDOVER_FILE="$KORTEXT_WORKSPACE_DIR/memory/handover.md"
|
|
13
|
-
|
|
14
|
-
[ -d "$BACKLOG_DIR" ] || exit 0
|
|
15
|
-
[ -f "$HANDOVER_FILE" ] || exit 0
|
|
16
|
-
|
|
17
|
-
STATUS=0
|
|
18
|
-
while IFS= read -r -d '' file_path; do
|
|
19
|
-
[ -f "$file_path" ] || continue
|
|
20
|
-
if grep -q '^> \*\*Status:\*\* Done' "$file_path"; then
|
|
21
|
-
item_id="$(basename "$file_path" | cut -d- -f1)"
|
|
22
|
-
if ! grep -q "^## Handover: $item_id" "$HANDOVER_FILE"; then
|
|
23
|
-
echo "---"
|
|
24
|
-
echo "❌ KORTEXT HANDOVER EKSİK"
|
|
25
|
-
echo "Done durumundaki item için handover kaydı bulunamadı: $item_id"
|
|
26
|
-
echo "Önce scripts/kortext-handover.py ile devir kaydı oluştur."
|
|
27
|
-
echo "---"
|
|
28
|
-
STATUS=1
|
|
29
|
-
fi
|
|
30
|
-
fi
|
|
31
|
-
done < <(find "$BACKLOG_DIR" -maxdepth 1 -type f \( -name 'T[0-9]*-*.md' -o -name 'B[0-9]*-*.md' -o -name 'D[0-9]*-*.md' \) -print0)
|
|
32
|
-
|
|
33
|
-
exit "$STATUS"
|
package/hooks/kortext-init.sh
DELETED
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
# KORTEXT MANAGED HOOK — generated/edited by kortext framework
|
|
3
|
-
# [KORTEXT] Oturum Başlatma ve Güvenlik Hook'u
|
|
4
|
-
|
|
5
|
-
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
6
|
-
# shellcheck source=kortext-lib.sh
|
|
7
|
-
source "$SCRIPT_DIR/kortext-lib.sh"
|
|
8
|
-
|
|
9
|
-
install_hook() {
|
|
10
|
-
local hook_name="$1"
|
|
11
|
-
local target_name="$2"
|
|
12
|
-
local hook_path=".git/hooks/$hook_name"
|
|
13
|
-
# Absolute path kullan; .git/hooks içinden çözünmesi gerekiyor.
|
|
14
|
-
local target_path
|
|
15
|
-
target_path="$(cd "$KORTEXT_DIR/hooks" && pwd)/$target_name"
|
|
16
|
-
|
|
17
|
-
if [ -e "$hook_path" ] && [ ! -L "$hook_path" ]; then
|
|
18
|
-
# KORTEXT MANAGED HOOK marker'ı hook dosyasının ilk 10 satırında ara.
|
|
19
|
-
# Marker bulunamazsa kortext yönetimindeki hook olmadığı için ezme.
|
|
20
|
-
if ! head -n 10 "$hook_path" 2>/dev/null | grep -q "KORTEXT MANAGED HOOK"; then
|
|
21
|
-
echo "Kortext Git Hook atlandı: $hook_path zaten mevcut (marker yok)."
|
|
22
|
-
return 0
|
|
23
|
-
fi
|
|
24
|
-
fi
|
|
25
|
-
|
|
26
|
-
ln -sf "$target_path" "$hook_path"
|
|
27
|
-
chmod +x "$KORTEXT_DIR/hooks/$target_name"
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
install_git_hooks() {
|
|
31
|
-
if [ ! -d ".git" ]; then
|
|
32
|
-
return 0
|
|
33
|
-
fi
|
|
34
|
-
|
|
35
|
-
mkdir -p .git/hooks
|
|
36
|
-
install_hook "pre-commit" "git-pre-commit.sh"
|
|
37
|
-
install_hook "commit-msg" "commit-msg-guard.sh"
|
|
38
|
-
install_hook "pre-push" "git-pre-push.sh"
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
# Runtime tespiti: KORTEXT_RUNTIME env var öncelik;
|
|
42
|
-
# yoksa proje köküne göre otomatik karar (claude_code | gemini_cli | codex).
|
|
43
|
-
detect_runtime() {
|
|
44
|
-
if [ -n "${KORTEXT_RUNTIME:-}" ]; then
|
|
45
|
-
echo "$KORTEXT_RUNTIME"
|
|
46
|
-
return 0
|
|
47
|
-
fi
|
|
48
|
-
if [ -d ".claude" ] || [ -n "${CLAUDE_PROJECT_ROOT:-}" ]; then
|
|
49
|
-
echo "claude_code"
|
|
50
|
-
return 0
|
|
51
|
-
fi
|
|
52
|
-
if [ -d ".gemini" ] || [ -n "${GEMINI_PROJECT_ROOT:-}" ]; then
|
|
53
|
-
echo "gemini_cli"
|
|
54
|
-
return 0
|
|
55
|
-
fi
|
|
56
|
-
echo "codex"
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
# Runtime adapter kurulumu: tespit edilen runtime'a göre uygun template'i
|
|
60
|
-
# proje köküne kopyalar ve `${KORTEXT_ROOT}` placeholder'ını gerçek path
|
|
61
|
-
# ile değiştirir. settings/runtime-adapters.md tek-kaynak dokümandır.
|
|
62
|
-
install_runtime_adapter() {
|
|
63
|
-
local runtime
|
|
64
|
-
runtime="${1:-$(detect_runtime)}"
|
|
65
|
-
local kortext_root
|
|
66
|
-
kortext_root="$(cd "$KORTEXT_DIR" && pwd)"
|
|
67
|
-
|
|
68
|
-
case "$runtime" in
|
|
69
|
-
claude_code)
|
|
70
|
-
local template="$KORTEXT_DIR/settings/.claude-settings.template.json"
|
|
71
|
-
local target=".claude/settings.json"
|
|
72
|
-
if [ ! -f "$template" ]; then
|
|
73
|
-
echo "⚠️ Claude Code template bulunamadı: $template"
|
|
74
|
-
return 1
|
|
75
|
-
fi
|
|
76
|
-
mkdir -p .claude
|
|
77
|
-
if [ -e "$target" ] && ! grep -q "KORTEXT_ROOT" "$target" 2>/dev/null; then
|
|
78
|
-
echo "ℹ️ Claude settings zaten mevcut (kortext yönetiminde değil), atlandı: $target"
|
|
79
|
-
return 0
|
|
80
|
-
fi
|
|
81
|
-
sed "s|\${KORTEXT_ROOT}|$kortext_root|g" "$template" > "$target"
|
|
82
|
-
echo "✅ Claude Code adapter kuruldu: $target"
|
|
83
|
-
;;
|
|
84
|
-
gemini_cli)
|
|
85
|
-
echo "ℹ️ Gemini CLI adapter henüz template'lenmedi (settings/runtime-adapters.md Bölüm 4)."
|
|
86
|
-
echo " AGENTS.md tabanlı baseline kullanılacak."
|
|
87
|
-
;;
|
|
88
|
-
codex|generic|*)
|
|
89
|
-
echo "ℹ️ Codex / Generic runtime: AGENTS.md zaten baseline olarak çalışır."
|
|
90
|
-
;;
|
|
91
|
-
esac
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
if [ "${1:-}" = "--install-hooks" ]; then
|
|
95
|
-
install_git_hooks
|
|
96
|
-
exit 0
|
|
97
|
-
fi
|
|
98
|
-
|
|
99
|
-
if [ "${1:-}" = "--install-runtime" ]; then
|
|
100
|
-
install_runtime_adapter "${2:-}"
|
|
101
|
-
exit 0
|
|
102
|
-
fi
|
|
103
|
-
|
|
104
|
-
# Versiyon oku
|
|
105
|
-
KORTEXT_VERSION=$(cat "$KORTEXT_DIR/settings/VERSION" 2>/dev/null | head -n 1 | tr -d '\n' || echo "?.?.?")
|
|
106
|
-
|
|
107
|
-
# 1. Framework'ü Kilitle (Zorunlu Adım)
|
|
108
|
-
if [ -f "$KORTEXT_DIR/scripts/lock_kortext.sh" ]; then
|
|
109
|
-
chmod +x "$KORTEXT_DIR/scripts/lock_kortext.sh"
|
|
110
|
-
bash "$KORTEXT_DIR/scripts/lock_kortext.sh" > /dev/null 2>&1
|
|
111
|
-
fi
|
|
112
|
-
|
|
113
|
-
# 1.5 Git Hook Entegrasyonunu Kur
|
|
114
|
-
install_git_hooks
|
|
115
|
-
|
|
116
|
-
# 1.6 Runtime Adapter Kurulumu (Claude Code / Gemini CLI / Codex)
|
|
117
|
-
install_runtime_adapter
|
|
118
|
-
|
|
119
|
-
# 1.7 SESSION_BRIEF — Oturum Başlangıç Özeti
|
|
120
|
-
# Aktif context, son handover ve stale itemları özetler.
|
|
121
|
-
SESSION_START_PY="$KORTEXT_DIR/scripts/kortext-session-start.py"
|
|
122
|
-
if command -v python3 &>/dev/null && [ -f "$SESSION_START_PY" ]; then
|
|
123
|
-
python3 "$SESSION_START_PY" 2>/dev/null || true
|
|
124
|
-
fi
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
# 2. Durum Tespiti Hazırlığı
|
|
128
|
-
BLUEPRINT="$KORTEXT_WORKSPACE_DIR/references/blueprint.md"
|
|
129
|
-
STACK="$KORTEXT_WORKSPACE_DIR/references/tech-stack.md"
|
|
130
|
-
BACKLOG_DIR="$KORTEXT_WORKSPACE_DIR/memory/backlog/"
|
|
131
|
-
|
|
132
|
-
# Proje adını çekmeye çalış
|
|
133
|
-
PROJE_ADI="Henüz tanımlanmamış"
|
|
134
|
-
if [ -f "$BLUEPRINT" ]; then
|
|
135
|
-
PROJE_ADI=$(grep -m 1 "^#" "$BLUEPRINT" 2>/dev/null | sed 's/# //' || echo "Henüz tanımlanmamış")
|
|
136
|
-
fi
|
|
137
|
-
|
|
138
|
-
# Mantık: Dosyaların içeriğine göre durum belirleme
|
|
139
|
-
DURUM="Yeni Proje"
|
|
140
|
-
SIRADAKI="!start analysis"
|
|
141
|
-
|
|
142
|
-
# Blueprint dolu ve onaylanmış mı?
|
|
143
|
-
if [ -s "$BLUEPRINT" ] && grep -q "status:.*approved" "$BLUEPRINT" 2>/dev/null; then
|
|
144
|
-
DURUM="Blueprint Hazır"
|
|
145
|
-
SIRADAKI="!start analysis"
|
|
146
|
-
fi
|
|
147
|
-
|
|
148
|
-
# Tech Stack dolu ve onaylanmış mı?
|
|
149
|
-
if [ -s "$STACK" ] && grep -q "status:.*approved" "$STACK" 2>/dev/null; then
|
|
150
|
-
DURUM="Analiz Tamamlandı"
|
|
151
|
-
SIRADAKI="!start planning"
|
|
152
|
-
fi
|
|
153
|
-
|
|
154
|
-
# Mevcut codebase var mı? (Kortext sonradan eklenmiş bir projeye mi?)
|
|
155
|
-
HAS_CODEBASE=false
|
|
156
|
-
if [ -f "package.json" ] || [ -f "requirements.txt" ] || [ -f "pubspec.yaml" ] || \
|
|
157
|
-
[ -f "go.mod" ] || [ -f "Cargo.toml" ] || [ -d "src" ] || [ -d "app" ] || [ -d "lib" ]; then
|
|
158
|
-
HAS_CODEBASE=true
|
|
159
|
-
fi
|
|
160
|
-
|
|
161
|
-
# Mevcut codebase varken blueprint yoksa → !onboard öner
|
|
162
|
-
if [ "$HAS_CODEBASE" = true ] && [ "$DURUM" = "Yeni Proje" ]; then
|
|
163
|
-
DURUM="Mevcut Proje Tespit Edildi"
|
|
164
|
-
SIRADAKI="!start onboard"
|
|
165
|
-
fi
|
|
166
|
-
|
|
167
|
-
# Backlog klasöründe herhangi bir Markdown dosyası var mı?
|
|
168
|
-
if [ -d "$BACKLOG_DIR" ] && find "$BACKLOG_DIR" -name "*.md" 2>/dev/null | grep -q "."; then
|
|
169
|
-
DURUM="Geliştirme Hazır"
|
|
170
|
-
SIRADAKI="!start development"
|
|
171
|
-
fi
|
|
172
|
-
|
|
173
|
-
# 3. Raporu Yazdır
|
|
174
|
-
echo "---"
|
|
175
|
-
echo "🏁 KORTEXT YÜKLENDİ (v$KORTEXT_VERSION)"
|
|
176
|
-
echo "+prime, Kortext protokolleri ve koruma kalkanları aktifleşti."
|
|
177
|
-
echo ""
|
|
178
|
-
echo "📋 Proje: $PROJE_ADI"
|
|
179
|
-
echo "📍 Durum: $DURUM"
|
|
180
|
-
echo "⏭️ Sıradaki Adım: $SIRADAKI"
|
|
181
|
-
echo ""
|
|
182
|
-
|
|
183
|
-
# Duruma göre kısa ipucu
|
|
184
|
-
case $DURUM in
|
|
185
|
-
"Yeni Proje") echo "💡 Not: blueprint.md üzerinden proje vizyonunu belirleyebilirsin." ;;
|
|
186
|
-
"Mevcut Proje Tespit Edildi") echo "💡 Not: Mevcut codebase bulundu. Kortext'i mevcut projeye entegre etmek için !onboard komutunu kullan." ;;
|
|
187
|
-
"Blueprint Hazır") echo "💡 Not: Analiz fazına geçmek için hazırım (blueprint dolu)." ;;
|
|
188
|
-
"Analiz Tamamlandı") echo "💡 Not: Teknik mimari hazır, planlama başlatılabilir." ;;
|
|
189
|
-
"Geliştirme Hazır") echo "💡 Not: Backlog dolu, hangi görevle başlıyoruz?" ;;
|
|
190
|
-
esac
|
|
191
|
-
|
|
192
|
-
echo ""
|
|
193
|
-
echo "Süreci yönetmek üzere komutunu bekliyorum."
|
|
194
|
-
echo "---"
|