
1 Proje Dizininizi Oluşturun
theme adında bir klasör oluşturdum ve öyle devam ettim, istediğiniz yerde istediğiniz dizini oluşturabilirsiniz. hiç önemi yok. bu aşamada 2 önemli dizin oluşturuyoruz; ".vscode" ve ".codex", biri IDE ayarlarını saklayacağımız dizin diğeri ise eklenti ayarları için gerekli, yani codex için.

2 Sabit Proje Kuralları: .vscode/memo-core.txt
burada konuşmanın başında belirttiğim ayarları codex'in kendinden almıştım, boş bırakırsanız test aşamasında sorun olabilir, benzer bir komut ile mevcut ayarları isteyin.
MEMO::UI THEME: body[data-theme="dark"][data-palette="purple"] only. PALETTE: use existing CSS tokens (color-bg/text/shadow±, color-primary[ ]); no hardcoded rgba unless derived via color-mix(); respect neumorphic shadows. BUTTONS: always reuse components/buttons.css (.btn, .btn-outline, .btn-reverse); never redefine. LAYOUT STYLES: primary styles live in assets/css; new experimental/test styling must go in /test/*.css while leveraging theme tokens. HERO: completed 18 variants (hero-sections.html/css/js); keep JS interactions (IntersectionObserver, parallax, newsletter feedback, video playback) intact. RANGE: RangeManager module in assets/js/range.js manages range UI; maintain separation. ANIMATIONS/UX: overlay text readable; animations trigger on scroll via IntersectionObserver; parallax honours prefers-reduced-motion; mobile responsiveness required. BLOCKS::PENDING - Feature Sections - CTA Sections - Pricing Sections - Header Sections - Newsletter Sections - Stats Sections - Testimonials Sections - Blog Sections - Contact Sections - Team Sections - Content Sections - Logo Clouds - FAQs - Footers - Headers (alt varyasyonlar) - Flyout Menus - Banners NEXT: focus on strengthening core UI kit before adding new section series.bu dosyayı istediğinizde güncelleyebilirsiniz, açılışta bağlama dahil edilecek bu ayarlar.
3 canlı durum bilgisini alma: .codex/memo-sync.py
bu dosya birleşik bağlam oluşturmak için tetikleyici olarak çalışıyor, değişiklikleri tarihi ile birlikte kayıt eder.
import os
import time
import json
from datetime import datetime
PROJE_KOK = r"KULLANDIĞINIZ_DİZİNİN_TAM_YOLUNU_BELİRTİN"
CORE_MEMO = os.path.join(PROJE_KOK, ".vscode", "memo-core.txt")
LIVE_MEMO = os.path.join(PROJE_KOK, ".codex", "memo-live.txt")
CONTEXT_JSON = os.path.join(PROJE_KOK, ".codex", "memo-context.json")
# DAHİL EDİLECEK ALT DİZİNLERİ GÜNCELLEYİN
IZLENECEK_KLASORLER = [
os.path.join(PROJE_KOK, "assets"),
os.path.join(PROJE_KOK, "components"),
os.path.join(PROJE_KOK, "test")
]
KONTROL_ARALIGI = 1.0
def oku(yol):
try:
with open(yol, "r", encoding="utf-8") as f:
return f.read()
except FileNotFoundError:
return ""
except Exception as e:
print(f"[UYARI] {yol} okunamadi: {e}")
return ""
def yaz(yol, icerik):
try:
with open(yol, "w", encoding="utf-8") as f:
f.write(icerik)
except Exception as e:
print(f"[HATA] {yol} dosyasina yazilamadi: {e}")
def dosya_zamani(yol):
try:
return os.path.getmtime(yol)
except FileNotFoundError:
return 0
def dosyalari_topla():
bulunan = []
for klasor in IZLENECEK_KLASORLER:
for kok, _, dosyalar in os.walk(klasor):
for d in dosyalar:
if d.endswith((".css", ".js", ".html")):
bulunan.append(os.path.join(kok, d))
return bulunan
def memo_live_uret():
suan = datetime.now().strftime("%H:%M:%S")
dosyalar = dosyalari_topla()
satirlar = [
f"MEMO::LIVE guncellendi saat {suan}",
f"Izlenen dosya sayisi: {len(dosyalar)}"
]
for f in dosyalar:
satirlar.append(" - " + os.path.relpath(f, PROJE_KOK))
return "n".join(satirlar)
def baglam_guncelle():
core = oku(CORE_MEMO)
live = oku(LIVE_MEMO)
icerik = f"{core}nn---nn{live}"
payload = {
"language": "tr",
"updated": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"content": icerik
}
yaz(CONTEXT_JSON, json.dumps(payload, ensure_ascii=False, indent=2))
print(f"Baglam guncellendi ({datetime.now().strftime('%H:%M:%S')})")
def main():
print("Codex Memo Sync baslatildi...")
onceki_durum = {}
yaz(LIVE_MEMO, memo_live_uret())
baglam_guncelle()
while True:
degisti = False
for f in dosyalari_topla():
mod_zaman = dosya_zamani(f)
if f not in onceki_durum or mod_zaman != onceki_durum[f]:
onceki_durum[f] = mod_zaman
degisti = True
if degisti:
yaz(LIVE_MEMO, memo_live_uret())
baglam_guncelle()
time.sleep(KONTROL_ARALIGI)
if __name__ == "__main__":
main()4 açılışta sabit kuralları yüklemek için: .codex/memo-load.pycodex yerel endpoint olacak, eğer codex henüz açılmamışsa sorun değil kuralları memo-context.json içine yazar ve bir bağlam kaybı olmaz.
import os
import json
PROJE_KOK = r"KULLANDIĞINIZ_DİZİNİN_TAM_YOLUNU_BELİRTİN"
CORE_MEMO = os.path.join(PROJE_KOK, ".vscode", "memo-core.txt")
CONTEXT_JSON = os.path.join(PROJE_KOK, ".codex", "memo-context.json")
def oku(yol):
try:
with open(yol, "r", encoding="utf-8") as f:
return f.read()
except FileNotFoundError:
return ""
except Exception as e:
print(f"[UYARI] {yol} okunamadi: {e}")
return ""
def baglam_yukle():
icerik = oku(CORE_MEMO)
if not icerik.strip():
print("memo-core.txt bos veya bulunamadi.")
return
payload = {
"type": "startup_context",
"language": "tr",
"content": icerik
}
with open(CONTEXT_JSON, "w", encoding="utf-8") as f:
json.dump(payload, f, ensure_ascii=False, indent=2)
print("Proje baglami kaydedildi (memo-context.json).")
if __name__ == "__main__":
baglam_yukle()5 basit yükleyici: .codex/context-loader.pyburadaki amaç memo-context.json dosyasını okuyarak vscode açıldığında bağlamın yüklendiğini görebilmek.
import os
import json
PROJE_KOK = r"KULLANDIĞINIZ_DİZİNİN_TAM_YOLUNU_BELİRTİN"
CONTEXT_JSON = os.path.join(PROJE_KOK, ".codex", "memo-context.json")
def yukle_baglam():
try:
with open(CONTEXT_JSON, "r", encoding="utf-8") as f:
data = json.load(f)
content = data.get("content", "")
if not content.strip():
print("Baglam bos veya eksik.")
return
print("Baglam yuklendi, kullanima hazir.")
print("---- OZET ----")
print(content[:500])
print("--------------")
except FileNotFoundError:
print("memo-context.json bulunamadi.")
except Exception as e:
print(f"Hata: {e}")
if __name__ == "__main__":
yukle_baglam()6 vscode görevleri: .vscode/tasks.jsonproje açıldığında her şeyin otomatik çalışması için yapılandırma. direkt kopyalayabilirsiniz, manuel düzeltme gereken bir dizin adresi bulunmuyor.
{
"version": "2.0.0",
"tasks": [
{
"label": "Load Codex Memo Context",
"type": "shell",
"command": "python",
"args": [
"${workspaceFolder}.codexmemo-load.py"
],
"isBackground": false,
"presentation": {
"reveal": "silent"
},
"runOptions": {
"runOn": "folderOpen"
},
"problemMatcher": []
},
{
"label": "Activate Codex Context",
"type": "shell",
"command": "python",
"args": [
"${workspaceFolder}.codexcontext-loader.py"
],
"isBackground": false,
"presentation": {
"reveal": "silent"
},
"runOptions": {
"runOn": "folderOpen"
},
"problemMatcher": []
},
{
"label": "Run Codex Memo Sync",
"type": "shell",
"command": "python",
"args": [
"${workspaceFolder}.codexmemo-sync.py"
],
"isBackground": true,
"presentation": {
"reveal": "never",
"panel": "shared"
},
"runOptions": {
"runOn": "folderOpen"
},
"problemMatcher": []
}
]
}7 vscode ayarlar: .vscode/settings.jsonbu nokta görece biraz tutarsız. codex açıldığında varsayılan olarak programın ana dizinine başvuruyor ve oradaki yapılandırmayı kullanıyor.
{
"codex.configPath": "${workspaceFolder}.codexconfig.toml"
}7. madde bahsi geçen tutarsızlığa değinelim, codex'i kurcalarken yapılandırma dosyasında hiç parametre olmadığını fark ettim. merak edip kullanabileceğim özelliklere baktım ve kendi yapılandırma dosyamı oluşturdum. çalıştırdığım dizinde oluşturmama rağmen, inatla ana dizini kullanıyordu. aynı durumu sizde yaşayabilirsiniz, bu yüzden şu komutu yazarak hangi yapılandırmayı kullanıyor test edin; show active config
active_profile = "theme" [profiles.theme] model = "gpt-5-codex" # Kodlama, analiz ve yaratıcı yazım için model_reasoning_effort = "high" # Derin düşünme (low, medium, high, max) temperature = 0.5 # Yanıtların yaratıcılığı (0 = tutarlı, 1 = yaratıcı) top_p = 1 # Cevap çeşitliliğini kontrol eder max_tokens = 4096 # Yanıt uzunluğu limiti presence_penalty = 0.4 # Yeni fikirleri teşvik eder frequency_penalty = 0.2 # Tekrarı azaltır memo_path = "./.codex/memo.txt" # hafıza dosyası auto_reload_memo = true # hafızayı otomatik yenileme # ----------------------------- # ÇALIŞMA ORTAMI # ----------------------------- auto_save_sessions = true # Her oturumu otomatik kaydeder (bellek taklidi) session_memory_limit = 10 # Son 10 oturumun bağlamını hatırlasın context_carryover = true # Önceki oturumlardan bilgiyi taşıyabilir log_interactions = true # Komut geçmişini kaydeder log_path = "./.codex/logs/" # Kayıt klasörü # ----------------------------- # KOD ÜRETİM VE ANALİZ # ----------------------------- enable_auto_refactor = true # Kod yazıldığında yapıyı iyileştirir generate_docstrings = true # Fonksiyonlara açıklama ekler suggest_optimizations = true # Kod sonrası öneri üretir syntax_check = true # Derleme öncesi sözdizimi kontrolüyukarıdaki kod da high modu seçiyorum, ancak eklenti tasarımında hata var,

burada medium görünüyor high kullandığım halde. bu sanırım bir çeşit varsayılan görüntü, high mod da olmasam sağdaki %3'lik token bildirimini göstermezdi. bu detayı fark edersiniz veya etmezsiniz, yine de aklınızda bulunsun, high mod ayarınıza rağmen medium ayar görünebilir. tüm bu çalışmaya ek olarak da kendi odak noktama göre codex'in parametrelerini yeniden oluşturdum. tüm bunları uyguladıktan sonrada vscode'u kapatın ve proje klasörünüzü açın.

bağlam aktifse hiçbir sorun yoktur. daha sonra codex'i açıp test edin.

çok kullanma fırsatım olmadı. sadece gerekli testleri yaptım ve çalıştığını görünce gelip sizinle paylaşmak istedim. bu çalışmayı geliştirmek isteyen olursa da mutlu olurum, şimdiden ellerinize sağlık.
