본문으로 건너뛰기
cccskills
무료GitHub에 공개

scaffold-exercises

Use when a course needs numbered problem, solution, and explainer scaffolds. Not for a CLI or Next.js project scaffold: use scaffold-nextjs.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(2)

  • SKILL.md3.9 KB
  • agents/openai.yaml148 B

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Scaffold exercises

Contract

FieldBound contract
TriggerA course needs numbered problem, solution, and explainer scaffolds.
AuthorityReversible local: writes only tracked section and exercise files/directories in the working directory; rollback is version control. No remote mutation.
Side effectCreates or updates numbered section and exercise files and directories.
DoneA JSON object naming scaffolded paths and linter status, with no unvalidated scaffold left on disk.

Inputs

Must be supplied:

  • section: the section number as a non-negative integer (e.g. 1, 2, 3)
  • exercise: the exercise number as a positive integer
  • type: one of: problem, solution, explainer
  • base_path: the directory under which sections and exercises live (must be a tracked VCS path)

Procedure

  1. Validate inputs and base_path. Confirm section is a non-negative integer, exercise is a positive integer, type is one of the three allowed values, and base_path is a non-empty string pointing to a directory that exists and is tracked by the local VCS. Stop on any validation failure without writing. Done when: all inputs pass validation.

  2. Compute the section subdirectory and a type-specific exercise filename. The section subdirectory is base_path/section-N where N is the section number left-padded to two digits. The exercise filename is exercise-M-<type>.md where M is the exercise number left-padded to two digits and <type> is the supplied type value. The three types produce distinct filenames (exercise-M-problem.md, exercise-M-solution.md, exercise-M-explainer.md) so they do not collide or overwrite each other. Done when: the subdirectory and filename are computed.

  3. Create the directory chain and file. Create the section subdirectory if it does not exist. Create the exercise file at the computed path. Done when: the directory chain and file exist.

  4. Populate the scaffold with the type-specific heading. For problem: emit ## Exercise N.N where N.N is section.exercise, then a blank line, then a fenced code block with the language unspecified. For solution: emit ## Exercise N.N Solution, then a blank line. For explainer: emit ## Exercise N.N Explained, then a blank line. Write the populated content to the file. If the write fails, stop and report the failure. Done when: the file contains the type-specific heading and scaffold.

  5. Discover the course linter command from the project manifest, configuration, or documentation, and run it against the target paths. Search for a linter command in package.json scripts, a linter config file, or project documentation. If no course linter is present, treat this as a linter failure. If the linter reports an error, delete newly created untracked files and revert tracked modifications via VCS. Done when: the linter passes, or the linter fails and all writes are reverted.

Failure and recovery

  • Invalid input: stop; do not write any file. Report the validation failure.
  • Write failure: stop; do not run the linter. Report the write error.
  • Linter failure: delete newly created untracked files and revert tracked modifications via VCS checkout. Report the linter output and the revert.
  • No course linter present: treat as a linter failure. Delete newly created untracked files and revert tracked modifications. Report that no linter was found.
  • Partial-result rule: never produce an unvalidated scaffold on disk. Any scaffold written before a linter pass must be reverted if the linter fails or is absent.

Output

A JSON object: scaffolded (array of paths created) and linter (status: pass or fail with output) on success; error (named failure class) and detail on failure. No unvalidated scaffold remains on disk in any terminal state.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when explaining System V AMD64, ARM AAPCS, RISC-V psABI, stack frames, variadic calls, or FFI register rules. Not for the Rust FFI binding layer: use rust-ffi.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

Use when configuring ADC sampling time, DMA-driven ADC, calibration, or DAC channel setup on bare-metal MCUs. Not for the DMA stream itself: use dma-baremetal.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

af-xdp

무료

Use when creating AF_XDP sockets, configuring UMEM and XSK rings, writing an XDP redirect program, or choosing copy versus zero-copy mode. Not for full kernel bypass: use dpdk.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

Use when a completed session needs an agent-environment retrospective. Not for an engineering retrospective from telemetry: use engineering-retrospective.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

Use when a redacted, trimmed agent transcript must be appended to a GitHub PR or issue body, with human approval and preview. Not for automated or model-initiated insertion.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

agents-md

무료

Use when a repo needs agent setup, AGENTS.md added or made lean, CLAUDE.md audited, or agent instructions scored or pruned. Not for remote, credential, publish, deploy, or irreversible changes.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

OutlineDriven/odin-claude-plugin372026년 9월 29일 업데이트

OutlineDriven의 스킬 모두 보기

이 스킬의 문제 신고