Loading...
Loading...
Compare original and translation side by side
PREREQUISITE: Readfor prerequisites and error handling.../ghpm-shared/SKILL.md
前提条件: 阅读了解前提条件和错误处理。../ghpm-shared/SKILL.md
https://github.com/orgs/<org>/projects/<number>https://github.com/orgs/<org>/projects/<number>gh auth statusgh auth logingh project view <number> --owner <owner> --format jsonread:projectprojectorganization(login: "<owner>")user(login: "<owner>")gh auth statusgh auth logingh project view <number> --owner <owner> --format jsonread:projectprojectorganization(login: "<owner>")user(login: "<owner>")gh project field-list <number> --owner <owner> --format jsonProjectV2SingleSelectFieldgh project field-list <number> --owner <owner> --format jsonProjectV2SingleSelectFieldgh api graphql -f query='
{
organization(login: "<owner>") {
projectV2(number: <number>) {
views(first: 50) {
nodes {
id
name
number
layout
filter
groupByFields(first: 5) {
nodes {
... on ProjectV2Field { name }
... on ProjectV2SingleSelectField { name }
... on ProjectV2IterationField { name }
}
}
sortByFields(first: 5) {
nodes {
field {
... on ProjectV2Field { name }
... on ProjectV2SingleSelectField { name }
... on ProjectV2IterationField { name }
}
direction
}
}
}
}
}
}
}'gh api graphql -f query='
{
organization(login: "<owner>") {
projectV2(number: <number>) {
views(first: 50) {
nodes {
id
name
number
layout
filter
groupByFields(first: 5) {
nodes {
... on ProjectV2Field { name }
... on ProjectV2SingleSelectField { name }
... on ProjectV2IterationField { name }
}
}
sortByFields(first: 5) {
nodes {
field {
... on ProjectV2Field { name }
... on ProjectV2SingleSelectField { name }
... on ProjectV2IterationField { name }
}
direction
}
}
}
}
}
}
}'gh project item-list <number> --owner <owner> --format json --limit 1000--limitgh project item-list <number> --owner <owner> --format json --limit 1000--limit.ghpm/config.json{
"version": 1,
"project": {
"owner": "<owner>",
"number": "<number>",
"id": "<project_node_id>",
"title": "<project_title>"
},
"workflow": {
"field": "<status_field_name>",
"field_id": "<status_field_id>",
"columns": [{ "id": "<option_id>", "name": "<option_name>" }]
},
"fields": [
{
"name": "<field_name>",
"id": "<field_id>",
"type": "<field_type>",
"options": [{ "id": "<option_id>", "name": "<option_name>" }]
}
],
"views": [
{
"name": "<view_name>",
"number": "<view_number>",
"id": "<view_id>",
"layout": "<table|board|roadmap>",
"filter": "<filter_string>",
"sort": [{ "field": "<field_name>", "direction": "<ASC|DESC>" }],
"group_by": ["<field_name>"]
}
],
"cache": {
"ttl_minutes": 30
},
"conventions": {
"branch": "{type}/{issue-number}/{slug}. Detect type from issue labels and title: bug→fix, enhancement/feature→feat, documentation→docs, test→test, refactor→refactor, default→chore",
"status_sync": "On start, set to InProgress if currently Planned or ReadyForDev. On session end with merged PR, set to Done.",
"decisions": "When a design decision is detected, nudge before recording. Post as issue comment."
},
"repos": ["<owner>/<repo>"]
}sortgroup_byoptionssingle_selectiterationowner/repo.ghpm/cache.json../ghpm-shared/references/cache.mdmkdir -p .ghpm/sessions.gitignore.ghpm/.ghpm/.gitignore.ghpm/\n.ghpm/config.json{
"version": 1,
"project": {
"owner": "<owner>",
"number": "<number>",
"id": "<project_node_id>",
"title": "<project_title>"
},
"workflow": {
"field": "<status_field_name>",
"field_id": "<status_field_id>",
"columns": [{ "id": "<option_id>", "name": "<option_name>" }]
},
"fields": [
{
"name": "<field_name>",
"id": "<field_id>",
"type": "<field_type>",
"options": [{ "id": "<option_id>", "name": "<option_name>" }]
}
],
"views": [
{
"name": "<view_name>",
"number": "<view_number>",
"id": "<view_id>",
"layout": "<table|board|roadmap>",
"filter": "<filter_string>",
"sort": [{ "field": "<field_name>", "direction": "<ASC|DESC>" }],
"group_by": ["<field_name>"]
}
],
"cache": {
"ttl_minutes": 30
},
"conventions": {
"branch": "{type}/{issue-number}/{slug}. Detect type from issue labels and title: bug→fix, enhancement/feature→feat, documentation→docs, test→test, refactor→refactor, default→chore",
"status_sync": "On start, set to InProgress if currently Planned or ReadyForDev. On session end with merged PR, set to Done.",
"decisions": "When a design decision is detected, nudge before recording. Post as issue comment."
},
"repos": ["<owner>/<repo>"]
}sortgroup_bysingle_selectiterationoptionsowner/repo../ghpm-shared/references/cache.md.ghpm/cache.jsonmkdir -p .ghpm/sessions.gitignore.ghpm/.ghpm/.gitignore.ghpm/\nghpm-work../ghpm-shared/references/integrations.md.claude/Detected Claude Code. Install session hooks for ghpm-work? (y/n)
Hooks add: auto session context injection, stale session detection.
Without hooks, ghpm-work still works via explicit commands.../ghpm-shared/references/integrations.md.claude/settings.local.json"hooks".claude/settings.local.json"hooks"ghpm-work../ghpm-shared/references/integrations.md.claude/检测到Claude Code。是否安装ghpm-work的会话钩子?(y/n)
钩子功能:自动会话上下文注入、过期会话检测。
不安装钩子,ghpm-work仍可通过显式命令运行。../ghpm-shared/references/integrations.md.claude/settings.local.json"hooks".claude/settings.local.json"hooks"ghpm initialized for <title> (<owner>/projects/<number>)
Fields: <count> (<list of field names>)
Views: <count> (<list of view names>)
Repos: <count>
Items: <count> cached
Config: .ghpm/config.json (gitignored)
Cache: .ghpm/cache.json (gitignored)
Hooks: <installed|skipped>
Run /ghpm-status for project overview.ghpm 已为<title>(<owner>/projects/<number>)初始化完成
字段: <count>(<字段名称列表>)
视图: <count>(<视图名称列表>)
仓库: <count>
项目项: <count> 已缓存
配置文件: .ghpm/config.json(已加入git忽略)
缓存文件: .ghpm/cache.json(已加入git忽略)
钩子: <已安装|已跳过>
运行/ghpm-status查看项目概览。