Skip to content
Back to skills

Contributor Pr Workflow

ASecurity

This skill should be used when a contributor wants to submit a new skill, edit an existing skill, or make any change to the Taiwan Architect KB repository. It guides the full lifecycle: clone/fetch, branch, create/edit, self-validate, and submit PR.

  • 153 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 5, 2026
documentationpythongobashnodegitdocumentation

Works with

  • vscode
  • cli
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 5, 2026

npx -y skills add h30190/HJPLUS_Taiwan_Architect_KB --skill contributor-pr-workflow --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Contributor Pr Workflow?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Contributor Pr Workflow
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/h30190-contributor-pr-workflow/badge)](https://www.skillsdirectory.com/skills/h30190-contributor-pr-workflow)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: contributor-pr-workflow
description: "This skill should be used when a contributor wants to submit a new skill, edit an existing skill, or make any change to the Taiwan Architect KB repository. It guides the full lifecycle: clone/fetch, branch, create/edit, self-validate, and submit PR."
license: CC-BY-SA-4.0
compatibility: claude-code,opencode,agent-skills
metadata:
  audience: contributors
  region: taiwan
  class: A
  status: verified
  data-currency: "2026-07-14"
---

# Contributor PR Workflow

Guide a contributor through the end-to-end process of submitting a change to this KB.

## Overview

This skill covers the full lifecycle from first clone to PR submission, with automated validation gates at each step. It prevents common mistakes: wrong directory structure, mismatched frontmatter, dirty files, broken links, and Simplified Chinese content.

## How It Works

### Phase 0: Environment Setup

1. **Clone the repo** (if first time):
   ```bash
   git clone https://github.com/h30190/HJPLUS_Taiwan_Architect_KB.git
   cd HJPLUS_Taiwan_Architect_KB
   ```

2. **Sync with latest main**:
   ```bash
   git checkout main
   git pull origin main
   ```

3. **Create a feature branch**:
   ```bash
   git checkout -b feat/your-feature-description
   ```

4. **Ask the contributor**: "What are you contributing?"
   - New skill → Phase 1
   - Edit existing skill → Phase 2
   - Rename / restructure → Phase 3
   - Other (fix typo, add reference, translate) → Phase 4

### Phase 1: Creating a New Skill

1. **Choose the category**: Look at `raw/` subdirectories to find the right home (建築設計與規劃, 建築法規, 公共工程, etc.).

2. **Copy the template**:
   ```bash
   cp -r 知識樣板/ raw/<category>/<chinese-entry-name>/
   ```

3. **Name the entry directory** (Traditional Chinese, intuitive name like `排煙窗法規檢討/`).

4. **Rename the skill directory** (inside the Chinese entry, from `skill-name-hyphenated/` to lowercase English hyphenated).

5. **Clean up optional subdirectories**: Delete `assets/`, `references/`, `scripts/` if not needed.

6. **Write `SKILL.md`**:
   - Frontmatter: `name` MUST match the skill directory name
   - `metadata.class` is REQUIRED (A/B/C)
   - `metadata.status` is RECOMMENDED (verified/unverified/draft)
   - `license` and `compatibility` are RECOMMENDED
   - Body in English, keep under 500 lines
   - C-class skills MUST include MCP tool examples

7. **Write `domain.md`**:
   - Traditional Chinese body
   - OKF frontmatter with `type: Knowledge Entry` and `title` matching the `# H1` — nothing else
   - 使用情境、學習目標、實務應用

8. **Update parent `index.md`**:
   - Open the parent directory's `index.md`
   - Add a new `* [Skill Name](path/SKILL.md) - description` entry under `## Skills`
   - If no `index.md` exists and the directory has 2+ children, create one per OKF v0.2

### Phase 2: Editing an Existing Skill

1. **Never delete `SKILL.md` or `domain.md` without a replacement**.

2. **Sync SKILL.md and domain.md**: If you change one, update the other.

3. **Preserve frontmatter**: `name` must stay in sync with directory name.

4. **If file is lowercase `skill.md`**, rename to `SKILL.md`:
   ```bash
   git mv <path>/skill.md <path>/SKILL.md
   ```

5. **B-class skills**: Keep `<!-- TODO: Taiwan adaptation needed -->` markers until adaptation is complete.

6. **When adding or removing a skill**, update the parent directory's `index.md` accordingly.

### Phase 3: Renaming / Restructuring

1. **Use `git mv`**, not OS-level rename:
   ```bash
   git mv <old-path> <new-path>
   ```

2. **Scan the entire repo** for stale references:
   ```bash
   # Search for old directory name in all markdown files
   grep -r "<old-name>" raw/ --include="*.md"
   ```
   Every reference must be updated.

3. **Update all `index.md` entries** that point to the old path.

4. **Update frontmatter `name`** if the skill directory name changed.

### Phase 4: Other Changes (Typo, Reference, Translation)

1. Make the change directly on your branch.
2. If touching a skill AND its domain, keep both in sync.
3. No special structure requirements.

### Phase 5: Self-Validation (RUN BEFORE SUBMITTING)

Run ALL checks below. If any fails, fix it before proceeding.

#### Structure Checks

- [ ] `SKILL.md` is uppercase (❌ `skill.md` is wrong)
- [ ] Three-layer structure correct:
      `category/chinese-entry/english-skill-name/SKILL.md`
      `category/chinese-entry/domain.md`
- [ ] `domain.md` frontmatter has `type: Knowledge Entry` + `title` ONLY (no skill fields)
- [ ] No `.history/`, `.vscode/`, `node_modules/`, `__pycache__/` files in the diff
- [ ] Skill directory name is lowercase English hyphenated (❌ pinyin like `pai-yan-chuang`)
- [ ] Skill directory name matches `name` in SKILL.md frontmatter

#### Frontmatter Checks

- [ ] `type: Skill` is present (OKF §11.2 — required on every SKILL.md)
- [ ] `name` is 1-64 chars, lowercase + hyphens only
- [ ] `description` is 1-1024 chars, includes trigger scenario
- [ ] `metadata.class` is present: A / B / C
- [ ] `sources` declared with `id` / `resource` (required for new skills)
- [ ] Top-level `status`, if used, is `draft`/`stable`/`deprecated` — never `verified`/`unverified`
- [ ] No undefined frontmatter fields (❌ `user-invocable`, `language`, `category` without AGENTS.md approval)
- [ ] `python scripts/validate_okf.py` reports 0 errors

#### Content Checks

- [ ] **No Simplified Chinese characters** anywhere in new/modified files

  Common simplified characters to catch:
  `质`(→質) `体`(→體) `设`(→設) `门`(→門) `气`(→氣) `车`(→車)
  `机`(→機) `发`(→發/發展) `层`(→層) `组`(→組) `备`(→備)
  `标`(→標) `规`(→規) `场`(→場) `试`(→試) `复`(→複/復)
  `认`(→認) `适`(→適) `整`(→整) `审`(→審) `图`(→圖)
  `电`(→電) `专`(→專) `阀`(→閥) `预`(→預) `签`(→簽)
  `标`(→標) `记`(→記) `证`(→證) `准`(→準) `验`(→驗)

- [ ] In `REFERENCES.md` or body text: no broken relative paths
- [ ] C-class skills have MCP tool call examples

#### Index & Cross-Reference Checks

- [ ] Parent directory's `index.md` lists this skill (or is created if needed)
- [ ] If the skill belongs to an existing question cluster, it's added to `consultation-workflow/SKILL.md` Section 1 Step 3
- [ ] `## Related Skills` section exists (if overlapping skills exist in `raw/`)

### Phase 6: Submit

1. **Stage and commit**:
   ```bash
   git add -A
   git commit -m "type(scope): brief description"
   ```
   Use Conventional Commits:
   - `feat` = new skill
   - `fix` = bug/correction
   - `docs` = documentation
   - `refactor` = restructure

2. **Push**:
   ```bash
   git push origin feat/your-feature-description
   ```

3. **Create PR via GitHub CLI**:
   ```bash
   gh pr create --title "<title>" --body "<description>"
   ```

4. **Tell the contributor**: "Your PR is submitted! A maintainer will review it. If changes are requested, the review comments will tell you exactly what to fix."

## Troubleshooting

**"I don't have gh (GitHub CLI)"**
→ Push your branch, then open the PR manually at https://github.com/h30190/HJPLUS_Taiwan_Architect_KB/pulls

**"I can't push (permission denied)"**
→ You need to fork the repo first, then push to your fork and create a PR from there.

**"I don't know what class my skill is"**
→ A = International standard (no Taiwan adaptation). B = International → Taiwan (add TODO). C = Taiwan-specific code/regulation.

## Related Skills

* [consultation-workflow](../raw/建築顧問方法論/顧問諮詢工作流程/consultation-workflow/SKILL.md) - For consultants using the KB to answer questions

Files in this skill

  • SKILL.md7.6 KB
  • domain.md1.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.