Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/skills/idea-refine/scripts/idea-refine.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ set -e

# This script helps initialize the ideas directory for the idea-refine skill.

IDEAS_DIR="docs/ideas"
IDEAS_DIR="ideas"

if [ ! -d "$IDEAS_DIR" ]; then
mkdir -p "$IDEAS_DIR"
Expand Down
8 changes: 7 additions & 1 deletion .harness/hooks/graphify-auto-refresh.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

set -euo pipefail

cd "$(git rev-parse --show-toplevel)"
repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [ -z "$repo_root" ]; then
script_dir="$(cd "$(dirname "$0")" && pwd)"
repo_root="$(cd "$script_dir/../.." && pwd)"
fi

cd "$repo_root"

mkdir -p .graphify-work

Expand Down
5 changes: 3 additions & 2 deletions .harness/reference/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Harness Reference

이 디렉터리는 `addyosmani/agent-skills`에서 가져온 문서 스냅샷과
이 디렉터리는 upstream skill pack에서 가져온 문서 스냅샷과
로컬 적응 규칙을 담는 하네스 내부 reference 레이어다.

## 포함 내용
Expand All @@ -17,7 +17,8 @@
- Source repository: `https://github.com/addyosmani/agent-skills`
- Imported on: `2026-04-08`

활성 스킬 자체는 `.agents/skills/`에 있고, 체크리스트는 루트 `references/`에 있다.
활성 스킬 자체는 `.agents/skills/`에 있고, 로컬 `agent-skills/` 미러 없이도 동작한다.
체크리스트는 루트 `references/`에 있다.
command-style prompt 초안은 `command-drafts/`, persona markdown 스냅샷은
`agent-personas/`에 보관한다.

Expand Down
13 changes: 7 additions & 6 deletions README.ko.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,25 @@
4-모듈 온라인 파이프라인(관심 스케치 → 시맨틱 검색 → 제로샷 리랭킹 → MSCP 신뢰도)을 26개 Food.com 시드 레시피 위에서 시각화하는 정적 HTML/JS 번들이다. `?lang=` URL 파라미터로 한국어/영어를 전환하며, 빌드 단계 없이 클라이언트에서 모두 실행된다.

<p align="center">
<a href="docs/demo/index.html">
<img src="docs/demo/screenshots/desktop-kr.png" alt="ZeroAlign-Rec 추천 데모 (데스크톱, KR)" width="800">
<a href="apps/demo/index.html">
<img src="apps/demo/screenshots/desktop-kr.png" alt="ZeroAlign-Rec 추천 데모 (데스크톱, KR)" width="800">
</a>
</p>

<details>
<summary>다른 뷰 — 영문 버전과 모바일 반응형</summary>

<p align="center">
<img src="docs/demo/screenshots/desktop-en.png" alt="영문(EN) 버전" width="800">
<img src="apps/demo/screenshots/desktop-en.png" alt="영문(EN) 버전" width="800">
</p>

<p align="center">
<img src="docs/demo/screenshots/mobile-en.png" alt="모바일 반응형 레이아웃" width="280">
<img src="apps/demo/screenshots/mobile-en.png" alt="모바일 반응형 레이아웃" width="280">
</p>

</details>

소스는 [`docs/demo/`](docs/demo/) 아래에 있다. 로컬 HTTP 서버로 `index.html`을 열거나(예: `python3 -m http.server --directory docs/demo`), 폴더를 GitHub Pages로 배포하면 공유 가능한 링크가 된다. 시뮬레이션 파이프라인 단위 테스트는 `docs/demo/tests/`에 있고 `node --test`로 실행한다.
소스는 [`apps/demo/`](apps/demo/) 아래에 있다. 로컬 HTTP 서버로 `index.html`을 열거나(예: `python3 -m http.server --directory apps/demo`), 폴더를 GitHub Pages로 배포하면 공유 가능한 링크가 된다. 시뮬레이션 파이프라인 단위 테스트는 `apps/demo/tests/`에 있고 `node --test`로 실행한다.

## 목차

Expand Down Expand Up @@ -279,9 +279,10 @@ uv run mypy src
| `src/sid_reco/` | application package |
| `src/sid_reco/sid/` | Phase 1 SID serialization 및 embedding artifact helper |
| `tests/` | automated tests |
| `apps/demo/` | 추천 파이프라인을 보여주는 정적 frontend demo |
| `data/` | local datasets and processed artifacts |
| `artifacts/` | generated reports, branding, and outputs |
| `docs/` | source materials plus legacy wiki archive |
| `docs/` | legacy docs-first knowledge archive |
| `graphify-out/` | primary committed knowledge graph artifacts |
| `.github/` | Copilot-facing instructions and agent personas |
| `.agents/skills/` | repo-local agent skills |
Expand Down
13 changes: 7 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,25 +17,25 @@ Current Phase 1 progress also includes an in-repository `sid` package plus a pub
A static HTML/JS bundle visualizes the four-module online pipeline (Interest Sketch → Semantic Search → Zero-Shot Rerank → MSCP Confidence) on a 26-recipe Food.com seed. The bundle is bilingual via the `?lang=` URL parameter and runs entirely client-side, so no build step or server is required.

<p align="center">
<a href="docs/demo/index.html">
<img src="docs/demo/screenshots/desktop-en.png" alt="ZeroAlign-Rec recommendation demo (desktop, EN)" width="800">
<a href="apps/demo/index.html">
<img src="apps/demo/screenshots/desktop-en.png" alt="ZeroAlign-Rec recommendation demo (desktop, EN)" width="800">
</a>
</p>

<details>
<summary>More views — Korean variant and mobile responsive</summary>

<p align="center">
<img src="docs/demo/screenshots/desktop-kr.png" alt="Korean (KR) variant" width="800">
<img src="apps/demo/screenshots/desktop-kr.png" alt="Korean (KR) variant" width="800">
</p>

<p align="center">
<img src="docs/demo/screenshots/mobile-en.png" alt="Mobile responsive layout" width="280">
<img src="apps/demo/screenshots/mobile-en.png" alt="Mobile responsive layout" width="280">
</p>

</details>

Source lives under [`docs/demo/`](docs/demo/). Open `index.html` over any local HTTP server (for example `python3 -m http.server --directory docs/demo`), or publish the folder via GitHub Pages for shareable access. Unit tests for the simulated pipeline live in `docs/demo/tests/` and run with `node --test`.
Source lives under [`apps/demo/`](apps/demo/). Open `index.html` over any local HTTP server (for example `python3 -m http.server --directory apps/demo`), or publish the folder via GitHub Pages for shareable access. Unit tests for the simulated pipeline live in `apps/demo/tests/` and run with `node --test`.

## Table of Contents

Expand Down Expand Up @@ -321,9 +321,10 @@ uv run sid-reco structure-taxonomy-batch --help
| `src/sid_reco/` | application package |
| `src/sid_reco/sid/` | Phase 1 SID serialization and embedding artifact helpers |
| `tests/` | automated tests |
| `apps/demo/` | static frontend demo for the recommendation pipeline |
| `data/` | local datasets and processed artifacts |
| `artifacts/` | generated reports, branding, and outputs |
| `docs/` | source materials plus legacy wiki archive |
| `docs/` | legacy docs-first knowledge archive |
| `graphify-out/` | primary committed knowledge graph artifacts |
| `.github/` | Copilot-facing instructions and agent personas |
| `.agents/skills/` | repo-local agent skills |
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
23 changes: 23 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# docs

이 디렉터리는 이제 기존 docs-first 지식 저장소의 legacy archive다.
현재 정본 source corpus는 `raw/`이고, primary machine-readable knowledge layer는
`graphify-out/`다. 라이브 정적 프론트엔드 데모는 `apps/demo/`로 이동했다.

## 현재 정본 경로

| 용도 | 현재 정본 |
|---|---|
| 설계/ADR/노트 source | `raw/design/` |
| 외부 문서 source | `raw/external/` |
| machine-readable graph | `graphify-out/` |
| 데모 frontend | `apps/demo/` |

## 운영 원칙

- 새 설계 문서, ADR, 외부 참고 자료는 `docs/`가 아니라 `raw/` 아래에 추가한다.
- 코드베이스/아키텍처 질의는 먼저 `graphify-out/GRAPH_REPORT.md`와 `graphify-out/graph.json`을 본다.
- `docs/wiki/`와 `docs/sources/`는 legacy archive로만 유지한다.
- 라이브 데모 UI 변경은 `apps/demo/`에서 작업한다.
- 자세한 Graphify 운영 규칙은 `AGENTS.md`, `.github/copilot-instructions.md`,
`.harness/reference/local-adaptation.md`를 따른다.
4 changes: 2 additions & 2 deletions graphify-out/BUILD_INFO.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
{
"graphify_version": "0.4.23",
"mode": "full_refresh",
"command": "python3 scripts/graphify_full_refresh.py /Users/skiiwoo/.codex/worktrees/c911/Training-Free-SID-Reco/.graphify-work/corpus",
"command": "python3 scripts/graphify_full_refresh.py /Users/skiiwoo/PERSONAL/Training-Free-SID-Reco/.graphify-work/corpus",
"generated_at": "2026-04-20T09:06:08.466995+00:00",
"corpus_path": "/Users/skiiwoo/.codex/worktrees/c911/Training-Free-SID-Reco/.graphify-work/corpus",
"corpus_path": "/Users/skiiwoo/PERSONAL/Training-Free-SID-Reco/.graphify-work/corpus",
"verified": true,
"semantic_backend": "heuristic",
"verification_profile": "raw-source-coverage-v3",
Expand Down
105 changes: 105 additions & 0 deletions graphify-out/VERIFY_FULL_REFRESH.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
{
"verified": true,
"verified_at": "2026-04-21T04:48:04.188466+00:00",
"required_semantic_files": [
"raw/design/adr/adr-001-dev-environment.md",
"raw/design/adr/adr-002-foodcom-preprocessing-policy.md",
"raw/design/adr/adr-003-neighbor-context-retrieval.md",
"raw/design/adr/adr-004-taxonomy-dictionary-generation.md",
"raw/design/adr/adr-005-taxonomy-dictionary-hardening.md",
"raw/design/adr/adr-006-strict-tid-hardening.md",
"raw/design/notes/dev-environment.md",
"raw/design/notes/food-com-dataset.md",
"raw/design/notes/food-taxonomy-dictionary.md",
"raw/design/notes/neighbor-context-index.md",
"raw/design/notes/phase2-recommendation-runtime-validation.md",
"raw/design/notes/phase2-recommendation-runtime.md",
"raw/design/notes/sid-compilation-indexing.md",
"raw/design/notes/sid-phase1-validation-run.md",
"raw/design/notes/taxonomy-dictionary-development-issues.md",
"raw/design/notes/taxonomy-item-structuring.md"
],
"presence_only_files": [],
"verification_profile": "raw-source-coverage-v3",
"verification_metrics": {
"semantic_link_count": 2283,
"relation_counts": {
"references": 1675,
"rationale_for": 471,
"semantically_related": 137
},
"coverage": {
"raw/design/adr/adr-001-dev-environment.md": [
"rationale_for",
"references",
"semantically_related"
],
"raw/design/adr/adr-002-foodcom-preprocessing-policy.md": [
"rationale_for",
"references",
"semantically_related"
],
"raw/design/adr/adr-003-neighbor-context-retrieval.md": [
"rationale_for",
"references",
"semantically_related"
],
"raw/design/adr/adr-004-taxonomy-dictionary-generation.md": [
"rationale_for",
"references",
"semantically_related"
],
"raw/design/adr/adr-005-taxonomy-dictionary-hardening.md": [
"rationale_for",
"references",
"semantically_related"
],
"raw/design/adr/adr-006-strict-tid-hardening.md": [
"rationale_for",
"references",
"semantically_related"
],
"raw/design/notes/dev-environment.md": [
"references",
"semantically_related"
],
"raw/design/notes/food-com-dataset.md": [
"references",
"semantically_related"
],
"raw/design/notes/food-taxonomy-dictionary.md": [
"references",
"semantically_related"
],
"raw/design/notes/neighbor-context-index.md": [
"references",
"semantically_related"
],
"raw/design/notes/phase2-recommendation-runtime-validation.md": [
"references",
"semantically_related"
],
"raw/design/notes/phase2-recommendation-runtime.md": [
"references",
"semantically_related"
],
"raw/design/notes/sid-compilation-indexing.md": [
"references",
"semantically_related"
],
"raw/design/notes/sid-phase1-validation-run.md": [
"references",
"semantically_related"
],
"raw/design/notes/taxonomy-dictionary-development-issues.md": [
"references",
"semantically_related"
],
"raw/design/notes/taxonomy-item-structuring.md": [
"references",
"semantically_related"
]
},
"missing_confidence": []
}
}
2 changes: 1 addition & 1 deletion ideas/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@

- 형식: 자유로운 Markdown
- 생성 시점: 사용자 확인 후에만 저장
- 주의: 위키 지식 저장소와 다르므로 `docs/wiki/` 대신 여기 둔다
- 주의: Graphify source corpus와 다르므로 `raw/design/` 대신 여기 둔다
8 changes: 7 additions & 1 deletion scripts/graphify_ci_candidate.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

set -euo pipefail

cd "$(git rev-parse --show-toplevel)"
repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [ -z "$repo_root" ]; then
script_dir="$(cd "$(dirname "$0")" && pwd)"
repo_root="$(cd "$script_dir/.." && pwd)"
fi

cd "$repo_root"

mkdir -p .graphify-work

Expand Down
8 changes: 7 additions & 1 deletion scripts/graphify_code_refresh.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

set -euo pipefail

cd "$(git rev-parse --show-toplevel)"
repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [ -z "$repo_root" ]; then
script_dir="$(cd "$(dirname "$0")" && pwd)"
repo_root="$(cd "$script_dir/.." && pwd)"
fi

cd "$repo_root"

GRAPHIFY_VERSION="0.4.23"
GRAPHIFY_CMD=(uvx --from "graphifyy==$GRAPHIFY_VERSION" graphify)
Expand Down
8 changes: 7 additions & 1 deletion scripts/graphify_prepare_corpus.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

set -euo pipefail

cd "$(git rev-parse --show-toplevel)"
repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [ -z "$repo_root" ]; then
script_dir="$(cd "$(dirname "$0")" && pwd)"
repo_root="$(cd "$script_dir/.." && pwd)"
fi

cd "$repo_root"

CORPUS_ROOT=".graphify-work/corpus"
rm -rf "$CORPUS_ROOT"
Expand Down
8 changes: 7 additions & 1 deletion scripts/graphify_sync_staged.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@

set -euo pipefail

cd "$(git rev-parse --show-toplevel)"
repo_root="$(git rev-parse --show-toplevel 2>/dev/null || true)"
if [ -z "$repo_root" ]; then
script_dir="$(cd "$(dirname "$0")" && pwd)"
repo_root="$(cd "$script_dir/.." && pwd)"
fi

cd "$repo_root"

STAGED_DIR="${1:-.graphify-work/corpus/graphify-out}"
ROOT_GRAPH_DIR="graphify-out"
Expand Down
41 changes: 41 additions & 0 deletions tests/test_graphify_harness.py
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,47 @@ def test_docs_manager_marks_full_refresh_as_explicit_only() -> None:
assert "legacy wiki" not in content


def test_active_doc_surfaces_no_longer_point_to_legacy_wiki_paths() -> None:
documentation_skill = (
ROOT / ".agents" / "skills" / "documentation-and-adrs" / "SKILL.md"
).read_text(encoding="utf-8")
meta_skill = (ROOT / ".agents" / "skills" / "using-agent-skills" / "SKILL.md").read_text(
encoding="utf-8"
)
docs_manager_agent = (
ROOT / ".agents" / "skills" / "docs-manager" / "agents" / "openai.yaml"
).read_text(encoding="utf-8")
doc_manager_agent = (
ROOT / ".agents" / "skills" / "doc-manager" / "agents" / "openai.yaml"
).read_text(encoding="utf-8")
issue_template = (
ROOT / ".github" / "ISSUE_TEMPLATE" / "research-attribution-review.yml"
).read_text(encoding="utf-8")
ideas_readme = (ROOT / "ideas" / "README.md").read_text(encoding="utf-8")
idea_refine_script = (
ROOT / ".agents" / "skills" / "idea-refine" / "scripts" / "idea-refine.sh"
).read_text(encoding="utf-8")

for content in (
documentation_skill,
meta_skill,
docs_manager_agent,
doc_manager_agent,
issue_template,
ideas_readme,
idea_refine_script,
):
assert "docs/wiki" not in content
assert "docs/sources" not in content

assert "raw/design/adr/" in documentation_skill
assert "raw/design/notes/" in documentation_skill
assert "raw/" in meta_skill
assert "raw/design/adr" in docs_manager_agent
assert "raw/design/notes" in issue_template
assert 'IDEAS_DIR="ideas"' in idea_refine_script


def test_pr_creation_rules_require_template_based_flow() -> None:
claude = (ROOT / "CLAUDE.md").read_text(encoding="utf-8")
copilot = (ROOT / ".github" / "copilot-instructions.md").read_text(encoding="utf-8")
Expand Down
Loading