원클릭으로
edc-update-impl
Incrementally updates edc-context/ files based on branch changes (v2 layout)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Incrementally updates edc-context/ files based on branch changes (v2 layout)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
Enables ultra-granular, line-by-line code analysis to build deep architectural context for any codebase.
Reviews whether code changes deliver the stated goal/spec and fit the repository architecture. Use this for PRs, branches, task implementations, plans, or diffs when the question is whether the implementation built the right thing in the right place: requirement coverage, scope creep, module ownership, source-of-truth choices, contracts, migrations, docs, and rollout.
Performs security/adversarial differential review of code changes (PRs, commits, diffs). Use this for auth, validation, trust-boundary, injection, crypto, memory-safety, external-call, state-mutation, or security-regression risk. It leverages git history and edc-context for blast radius and writes markdown security reports.
Builds or updates deep architectural context for any codebase (v2 layout)
Identifies code quality, maintainability, overengineering, bloat, duplication, and test-value risks by comparing EDC context expectations to actual code
Constrained doc-only edit pass for generated EDC context after report-only curation.
SOC 직업 분류 기준
| name | edc-update-impl |
| description | Incrementally updates edc-context/ files based on branch changes (v2 layout) |
Arguments: optional --base <ref> for comparison reference and repeatable --ignore <glob> to exclude files from this run. Default base: auto-detect merge base with main/master.
Before computing changed files, resolve ignore patterns in this order:
--ignore <glob> arguments were provided, use only those patterns..edcignore exists in the repo root, read non-empty, non-comment lines from it.Apply ignore rules to repo-relative file paths before mapping changed files to modules.
This skill is invoked by plugins/edc/scripts/edc-update.sh AFTER the orchestrator has gated the on-disk state. By the time this skill runs you can assume:
edc-context/manifest.json exists, parses as JSON, and schemaVersion == 2edc-context/index.md existsedc-context/.meta.json, top-level context.md etc.) are NOT presentIf any of those assumptions are violated when this skill runs, that's an orchestrator bug — fail loudly rather than trying to repair the layout from inside the skill. Do NOT call edc-clean-slate.sh from this skill.
If git diff --name-only "$BASE"..HEAD returns no source-file changes (only edc-context/ or unrelated tracked paths), the update is a no-op. Skip to Step 10 (Validate) and exit 0. Never declare success when manifest.json is missing or invalid — the orchestrator's edc-doctor.sh post-check will catch that, but a clean exit from this skill on a broken layout is itself a bug.
# Auto-detect base if not provided
BASE=$(git merge-base HEAD main 2>/dev/null || git merge-base HEAD master 2>/dev/null)
# Get changed files since base
git diff --name-only "$BASE"..HEAD
Read edc-context/manifest.json to get sourceCommit (last analyzed commit) and modules[] with their name, doc, and match rules.
Classify each changed file by invoking the shared classifier:
printf '%s\n' <file-path> | node plugins/edc/hooks/lib/classify-cli.mjs edc-context/manifest.json
classify-cli.mjs returns <path>\t<state> lines where state is exactly one of: ignored, context-module:<module>, contextless:<entryId>:<reviewPolicy>, uncovered, or ambiguous. Do not reimplement classification.
Collect affected real modules from context-module:*. For changed contextless:* paths, inspect the diff and either keep them contextless, promote them to a real context module, or report a promotion candidate; do not silently skip them. reviewPolicy controls review behavior only — update owns actual context promotion/status changes. uncovered and ambiguous paths must be fixed by manifest/context changes before the update is considered healthy.
Also include any modules that edc-context/modules/<name>.md documents as coupled to an affected module (read the cross-module coupling sections).
edc-build-plan.sh expects the FULL module list on stdin and a comma-separated --changed filter as a single argument. Build the input from the existing manifest, then pipe it in:
# Comma-join the affected module names (no spaces)
CHANGED="$(IFS=,; echo "${affected[*]}")"
# Project the manifest's modules[] into the script's expected {name, paths} shape,
# then pipe and filter
jq '{
modules: [
.modules[] | {
name,
paths: ((.match.exactFiles // []) + (.match.prefixes // []) + (.match.globs // []))
}
]
}' edc-context/manifest.json \
| bash plugins/edc/scripts/edc-build-plan.sh --changed "$CHANGED"
Execute the resulting module-context task list the same way as the build flow (see edc-build-impl step 2): spawn one clean subagent per task using the embedded prompt verbatim, run in parallel batches, collect summaries. Do not interpret, edit, or skip tasks.
edc-context/modules/<name>.md filesRewrite each affected module's edc-context/modules/<name>.md with the new analysis. Preserve the file format (<!-- generated by /edc:edc-build --> header).
If the manifest's modules[] set has changed (modules were renamed, merged, or dropped):
edc-context/modules/, check whether its name corresponds to a module still listed in the post-update manifest's modules[].doc.edc-context/modules/<name>.md whose module no longer exists in the manifest.This keeps the on-disk module set in sync with manifest.modules[]. Do not delete edc-context/modules/ itself.
edc-context/reports/issues.mdRe-read all edc-context/modules/*.md files. Rebuild edc-context/reports/issues.md from scratch:
edc-context/reports/complexity.md if affectedIf any changed module's deep-context analysis surfaced new code quality / maintainability signals (or invalidated existing ones), refresh edc-context/reports/complexity.md to reflect the current state. Otherwise leave it alone.
edc-context/index.md if neededRe-read all edc-context/modules/*.md files and preserve this section order whenever the index is rewritten:
## How to use## Route by path/task## Critical global invariants## Cross-module coupling / blast radiusOptional compact sections may follow only when they materially improve first-read decisions: ## Architecture overview and ## Module table. Keep them tiny; do not include generated file counts, LOC estimates, manifest priority values, report links, or broad architecture essays.
Do not add a Reports section to the ordinary index read path; reports remain discoverable through manifest.json and explicit review/audit workflows.
Check if any of these changed:
If any changed, rewrite edc-context/index.md as the same routing-first operational index described by the build contract (preserving the ## heading requirement). If only a purely local implementation detail changed and the routing, invariants, coupling, trust boundaries, module relationships, and key flows are unchanged, leave the index alone to avoid noisy rewrites.
edc-context/manifest.jsonRe-author the LLM-owned portion of the manifest (only fields that changed: modules[] if modules were added/removed/renamed, contextless.entries[] if coverage shifted, and legacy unmapped.allowedGlobs only for migration compatibility). Preserve policy.defaultMode from the existing edc-context/manifest.json — it may have been set by edc mode advisory|inject and rebuilds must not revert that choice. Likewise preserve any other operator-authored policy.* fields (guardedTools, discoveryGatedOnIndex, bootstrapAlwaysReadable). Do not populate generatedAt, sourceCommit, or coverage.* — the post-step owns those.
Pipe the partial manifest through the deterministic generator to refresh coverage.* and sourceCommit:
cat /tmp/partial-manifest.json | bash plugins/edc/scripts/edc-manifest.sh > edc-context/manifest.json
# if this update was invoked with --ignore flags, pass the same flags to edc-manifest.sh
A non-zero exit from edc-manifest.sh is an update failure — surface it instead of writing a hand-edited manifest.
After the update, verify the v2 layout still holds:
edc-context/manifest.json parses, schemaVersion == 2, and every modules[].doc resolves to an existing fileedc-context/modules/ for modules dropped from the manifestedc-context/index.md contains at least one ## headingedc-context/reports/issues.md and edc-context/reports/complexity.md existIf any check fails, surface the failure; do not silently continue. edc doctor is the canonical end-to-end validator.
The shell orchestrator runs edc-context-curator-impl as a separate runtime report-only step after this skill returns and doctor validates the generated context. Do not invoke the curator from inside this update skill.