Axon이란 걸 만들고 있습니다

06:47:54 → 시작
07:00:43 → persistence.rs FINAL_GATE_PASSED (마지막 태스크)

총 소요: 약 12분 49초

태스크별 처리 시간:

dependencies.rs  → 약 1분 24초
output.rs        → 약 49초
input.rs         → 약 2분 47초 (하드코딩 감지로 retry 1회)
validation.rs    → 약 1분 43초
control.rs       → 약 46초
calculation.rs   → 약 1분 27초
persistence.rs   → 약 1분 42초 (stub 감지로 retry 1회)

워커 1개로는 문제없이 코드를 순차적으로 벹어냅니다.
워커가 주니어의 수에 따라 늘어나면 이제부터는 지옥이 되네요.
곁눈질과 Stub이 생성됩니다.

병렬 처리의 그 달콤한 유혹 뒤에 숨겨진 '동기화의 저주’가 시작되는 거 같네요.


이제 워커 2개로 다시 테스트해봐야겠네요
일단 파이선과 러스트를 제작 언어로 만들어뒀습니다만 그것도 조만간 더 늘여봐야 겠습니다.


노가리 올라옵니다.
지금 c와 C++테스트 중입니다. .h 파일 분리가 안되서 애 먹었네요.
덕분에 맨땅에 헤딩하듯 처음부터 짜내고 있습니다.
현재 spec을 분리해서 제대로 architecture.md를 만들어 내고 .h와 .c 파일을 실제 파일로 코드 안착시키는 과정에 있습니다.

스펙
:rocket: 프로젝트: AXON 논리 검증용 C 나이 계산기 (v0.4-C Native)

[!IMPORTANT]
본 문서는 SYNAPSE 시스템의 논리 검증을 위한 C 언어 기반 표준 규격서입니다.
POSIX 표준 및 KISS(Keep It Simple, Stupid) 원칙에 따라 설계되었습니다.[cite: 1]


1. 핵심 설계 원칙 (Bare Metal ECS)

1-1. C 코딩 원칙[cite: 1, 22]

  • 메모리 안정성 (Memory Safety): 모든 동적 할당은 malloc/free 쌍을 엄격히 관리하며, 하네스의 valgrind 검증을 통과해야 합니다.
  • 표준 라이브러리 지향: 외부 의존성을 최소화하고 time.h, stdio.h, stdlib.h 등 표준 헤더를 우선 사용합니다.[cite: 1]
  • 강력한 타입 검사: scanf 등의 리턴값을 반드시 체크하여 입력 Contamination을 물리적으로 차단합니다.

1-2. 필수 라이브러리 (Dependencies)

라이브러리 역할 비고
sqlite3 C API를 이용한 로우 레벨 데이터 영속성 관리 필수
time.h 시스템 시간 추출 및 struct tm 기반 정밀 날짜 연산 표준[cite: 1]
ncurses 터미널 시각화 및 대시보드 UI 구현 선택

2. 시스템 아키텍처 (Modular C)

기능 간 결합도를 낮추기 위해 헤더 파일 계약을 기반으로 컴포넌트를 분리합니다.[cite: 1, 22]

  • main.c: 전체 라이프사이클 제어 및 메인 메뉴 루프.
    • Expected capabilities: 메뉴 표시, 사용자 입력 처리, 프로그램 종료
  • database.c/h: SQLite3 C API 기반 CRUD 및 데이터 바인딩.
    • Expected capabilities: DB 초기화, 사용자 추가/조회/수정/삭제, Prepared Statement 바인딩
  • calculator.c/h: struct tm 멤버 연산을 통한 만나이/한국나이 정밀 산출.[cite: 1]
    • Expected capabilities: 만나이 계산, 한국나이 계산, 윤년判定, 날짜 연산
  • validators.c/h: 윤달(Leap Year) 지원 및 연도/월/일 범위 검증 로직 통합.
    • Expected capabilities: 연도 유효성, 월 유효성, 일 유효성, 윤년 판단

3. 데이터 모델 (SQLite3 Schema)

Table: user_records

CREATE TABLE user_records (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT UNIQUE NOT NULL,
    birth_year INTEGER NOT NULL,
    birth_month INTEGER NOT NULL,
    birth_day INTEGER NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

architecture.md
Architecture: spec

Components

Main Program

  • Path: main.c
  • Functions: [String(“menu_display”), String(“user_input_processing”), String(“program_termination”)]

Database Module

  • Path: database.c/h
  • Functions: [String(“db_initialization”), String(“user_addition”), String(“user_query”), String(“user_update”), String(“user_deletion”)]

Calculator Module

  • Path: calculator.c/h
  • Functions: [String(“age_calculation”), String(“korean_age_calculation”), String(“leap_year_detection”), String(“date_operation”)]

Validators Module

  • Path: validators.c/h
  • Functions: [String(“year_validation”), String(“month_validation”), String(“day_validation”), String(“leap_year_detection”)]

SQLite3 \-_-/ 반자이!!

2개의 좋아요


C와 C++에 컴파일러 달아서 최종 검증하고 있습니다. CMakeLists.txt 파일이 아주 슬프게 나오네요.

모든 명세가 완벽하리라는 보장이 없습니다.

  1. 초반에 명세를 확인하는 과정에서 문제가 있는지 없는지 수정할 수 있게 했습니다.
  2. 작업 도중에도 문제가 생길 수 있습니다. 3회 리젝트 되는 경우, 바로 보스 게시판에서 수정이 가능하도록 했습니다.

불완전 명세라도 사용자의 개입으로 이를 완료 하는 과정입니다.

아키텍트역 AI가 모든 작업을 분류하고 이를 사용자가 승인하면
아키텍트가 전체 작업을 단계별로 구분합니다.
주니어 역 AI 가 코드 제출하고 → validator가 먼저 검증 후 문제가 없으면
시니어 역 AI가 코드를 리뷰해서 → 승인 / 반려 합니다.
반려 횟수가 일정 횟수 이상 넘어가면 사용자의 권한으로 수정 / 오버라이드 할 수 있습니다.
이렇게 3단계에 걸쳐 리뷰가 이뤄지면 최종 파일들이 나오게 됩니다.

언어 분화하고 IR 검증하고 그래도 문제가 생깁니다. LSP를 추가했습니다.
LLM이 이미 nvim이나 VScode의 LSP 가 설치되어 있으면 이를 검색해서 자동으로 사용할 것인지 확인해줍니다
마일스톤 목표 달성: LLM의 자기모순적 검증 루프를 파괴하고 컴파일러 및 LSP를 언어 합법성의 절대 판사로 전면 도입하기 위한 아키텍처 개편을 완료했습니다.

  • IDE 독립적 LSP 오케스트레이션: Neovim/VSCode 등 특정 에디터에 종속되지 않고, 공통 분모인 LSP 백엔드와 양방향 stdio 파이프로 직접 교신하는 LSP Client LayerWorkspace Manager 설계를 시스템 명세서에 완전히 영구 등재(Lock-in)했습니다.

IR 구조를 아예 물리적 파일로 모두 분리했습니다. 일부 공용으로 쓰이던 부분들까지 모조리 별도 파일로 만들어두었습니다.

다국어 주권(Language Sovereignty) 모듈 트리 및 역할 명세

아래는 최초의 언어 판별 이후 각 언어별로 처리를 전적으로 대리(Delegation)하여 격리하도록 설계 및 구축된 디렉토리 트리와 파일별 역할 스펙입니다.

crates/axon-daemon/src/intelligence/language_contract/
├── mod.rs          # [Interface Gate] 각 언어별 전용 계약 모듈 및 검증기를 외부로 일괄 노출 및 연동하는 관문
├── common.rs       # [Common Utility] 토큰 분석기(tokenize), 대소문자 검출, 프리미티브 치환 룰 등 언어 공통 파싱 유틸리티
├── rust.rs         # [Rust Sovereign] Rust 전용 수립 엔진. C-centric 키워드 완전 금지 및 FAILED 패널티 조건 수립
├── c.rs            # [C Sovereign] C/C++ 전용 수립 엔진. GCC/Clang 링커 에러(undefined reference, segfault) 정밀 분석
└── python.rs       # [Python Sovereign] Python 전용 수립 엔진. IndentationError, ModuleNotFoundError 및 Python 프롬프트 격리

AXON Factory 전체 핵심 아키텍처 트리 및 파일별 역할 명세

/home/dogsinatas/rust_project/axon
├── crates/
│   ├── axon-core/
│   │   └── src/lib.rs          # [Core Types] Task, Thread, AgentRole 등 공장 전체에서 사용하는 핵심 데이터 모델 및 상태 정의
│   ├── axon-model/
│   │   └── src/lib.rs          # [Model Drivers] Gemini, Claude, OpenAI, Ollama(Local AI) 및 Mock 연동 추상화 및 드라이버 구현
│   ├── axon-dispatcher/
│   │   └── src/lib.rs          # [Dispatcher] 병렬 백그라운드 에이전트 요원들의 비동기 스레드 스케줄러 및 라운드로빈 라우터
│   ├── axon-storage/
│   │   └── src/lib.rs          # [Storage & SQLite] SQLite 파일 DB 생성, 테이블 자동 마이그레이션, Durability WAL 영속화
│   └── axon-daemon/
│       ├── src/lib.rs          # [Daemon Kernel] 오케스트레이터의 라이프사이클(Run, Rework, Spec Normalization)을 총괄하는 공장장 코어
│       ├── src/server.rs       # [Axum API Server] Boss Board(Studio UI)와 실시간 SSE 이벤트 스트림을 교환하고 사장 보고/승인을 관장하는 REST API 서버
│       └── src/intelligence/
│           ├── decision.rs     # [Intelligence Decision] LSP 진단 결과와 빌드 상태를 분석해 코드를 교정하거나 반려 방향을 확정하는 판정관
│           └── language_contract/ # [Language Contracts] C/Rust/Python 언어별 전용 프롬프트 및 에러 스펙의 고수준 격리 모듈군
└── studio/
    ├── src/types/index.ts      # [Frontend Types] TypeScript Thread, Post 인터페이스 정밀 선언
    ├── src/components/ThreadCard.tsx # [UI Component] 컴팩트 패딩 디자인 및 4대 카테고리별 🚨 ALERT!!! 실시간 반려 배지 렌더링
    └── src/App.tsx             # [UI Core] Dashboard 및 Workboard 그리드 간격 축소 및 전체 관제 센터 페이지 조율

다시 rust로 작업했습니다.
이제 이 변경 작업으로 C/C++에서도 문제가 없다면 파이선 작업에 들어갑니다.

GTK에서 동작하는 에디터입니다.
대충 내용은 이렇습니다.
Lua 인터프리터와 렌더러를 가지고 있습니다.

vim의 특정 확장을 지원합니다.

vim의 특정 테마를 지원합니다.

파일 탐색기를 지원합니다.

일반적인 텍스트 포멧의 파일 저장이 가능합니다.

화면 분할 기능 없습니다.

한 화면에 하나의 파일만 편집 가능합니다.

자동 세이브 기능 없습니다.

액슨으로 지금 여기까지 왔습니다. ㅠㅠ

이것과 동일한 명세로 win32용 명세도 만들어 동시에 테스트 중입니다.