F-Stack Issue Analysis and Processing SOP
Scope: analyze issues of the F-Stack GitHub repository (F-Stack/f-stack), judge their status, and give processing suggestions.
Environment Preparation
- GitHub Token configured (GH_TOKEN environment variable)
- Official F-Stack repository cloned to /data/workspace/f-stack
- gh CLI installed
Step 1: Read the Full Issue
The full issue text and all discussions must be obtained; never judge from the title alone.
export GH_TOKEN='<token>'
# Get the issue body
gh issue view <NUMBER> -R F-Stack/f-stack
# Get all comments (API, no truncation)
gh api repos/F-Stack/f-stack/issues/<NUMBER>/comments --jq '.[] | {user: .user.login, created_at: .created_at, body: .body}'
Record the following:
- Reporter (author)
- F-Stack / DPDK version
- Error symptoms (crash, performance, build failure, functional anomaly, etc.)
- Reproduction steps or environment description
- Existing discussion conclusions (whether maintainers replied, whether a solution exists)
Step 2: Search for Information
Invoke the f-stack-info-search skill to search for information, which has five parts:
- Check architecture docs and knowledge graph: three-layer architecture docs under docs/ (LAYER1/2/3) + KNOWLEDGE_GRAPH_WIKI
- Check commit history: local git log search for fixing commits + DPDK upstream
- Check related Issues and PRs: first check the local issue analysis archives (docs/zh_cn/f-stack-issue-ana.md, docs/f-stack-issue-ana.md), then gh search issues/prs + DPDK Patchwork
- Check public resources: DPDK Bugzilla / Patchwork / inbox.dpdk.org / web search
- Internal/external information search for general analysis/research tasks: tech blogs / WeChat articles / tech communities / internal knowledge bases / iWiki, bilingual keyword construction and three-way evidence convergence
After the search, return to this skill and continue with Step 3 comprehensive judgment.
Step 3: Comprehensive Judgment
Give a clear conclusion in Chinese (or English for the reply), using the following format:
Conclusion Templates
## Issue #<NUMBER> Analysis Conclusion
**Title:** <issue title>
**Status:** <one of the following>
### Case 1: Already fixed
- Conclusion: fixed
- Fix commit: <hash> (<commit message>)
- Fixed in: F-Stack v<x.y> / DPDK <version>
- Backported: yes/no
- Suggested action: closable; reply telling the user to upgrade to v<x.y>
### Case 2: Upstream patch exists but not merged
- Conclusion: upstream patch not merged
- Patch link: <URL>
- Patch status: Accepted / Under Review / Superseded
- Affected versions: fix status across DPDK 22.11 / 23.11 / 24.11 LTS
- Suggested action: wait for merge / cherry-pick manually
### Case 3: Not fixed
- Conclusion: not fixed
- Root cause: <detailed description>
- Scope: <which versions/scenarios are affected>
- Fix plan: <suggested approach>
- Suggested action: development work needed
### Case 4: Workaround exists
- Conclusion: workaround exists
- Workaround steps: <concrete operations>
- Root fix needed: yes/no
- Suggested action: reply with the workaround, keep the issue open pending a root fix
### Case 5: Not a bug (usage question / outdated / cannot reproduce)
- Conclusion: not a bug / outdated / cannot reproduce
- Reason: <detailed explanation>
- Suggested action: closable; reply explaining the reason
Key Notes
Never operate issues automatically
- After analysis, human confirmation is required before commenting on or closing an issue
- Give suggested actions but do not execute them directly
- Wait for explicit user instructions before acting (comment, close, label, etc.)
- Issue reply comments must be in English, do not @ anyone, no long-winded analysis, do not repeat what existing replies already contain, and state only the core conclusion and key steps
Classify issue ownership
- F-Stack itself: code under lib/, the FreeBSD porting layer, ff_* APIs
- DPDK upstream: code under dpdk/, drivers, EAL layer
- User configuration: config.ini, hugepages, NIC offload, ASLR, etc.
- Application integration: Nginx/Redis integration, multi-process architecture
DPDK version tracking
- F-Stack v2.0 -> DPDK 24.11.6
- F-Stack v1.25 -> DPDK 23.11.5
- F-Stack v1.24 -> DPDK 22.11.6
- F-Stack v1.22.1 -> DPDK 20.11.9
- F-Stack v1.21.x -> DPDK 19.11.14
- When DPDK versions are involved, clearly state the fix status across 22.11 / 23.11 / 24.11 LTS
Sync the issue analysis archives
- After every reply or issue modification, the local issue analysis archives must be updated:
- Chinese: docs/zh_cn/f-stack-issue-ana.md
- English: docs/f-stack-issue-ana.md
- The two archives stay consistent (bilingual), recording: issue number, title, analysis conclusion, and actions taken (reply/close/fix commit)
Build fix rules
After fixing a file, ensure all other files depending on it still compile
After modifying a common header, verify every file that includes it one by one
A full make with no errors is required before a PR
Build verification commands:
# F-Stack lib build verification
cd /data/workspace/f-stack/lib && make clean && make
# ftdns-dev src build verification
cd /data/workspace/ftdns-dev/src && make clean && make
Batch Analysis Flow
When batch-analyzing multiple issues:
# 1. Get all open issues in the given range
gh issue list -R F-Stack/f-stack --state open --limit 500 \
--json number,title,labels,createdAt,author \
--jq '[.[] | select(.number >= <START> and .number <= <END>)] | sort_by(.number)'
# 2. Run the three-step analysis flow for each one
# 3. Produce a categorized summary report including:
# - Total count
# - Classification by type (Bug / feature request / usage question / build issue)
# - Classification by status (fixed / not fixed / workaround exists / outdated)
# - Suggested action list (which to close, which need fixes, which need replies)
Relationship with Development Rules
If the issue processing involves code changes, all mandatory rules of the f-stack-dev-rule skill must also be followed (rm/kill/chmod scripts, make clean builds, config.ini not committed, no real IPs in docs, English code comments, minimal lib comments, etc.).
1---2name: f-stack-issue-process3description: F-Stack Issue Analysis and Processing SOP4---56# F-Stack Issue Analysis and Processing SOP78Scope: analyze issues of the F-Stack GitHub repository (F-Stack/f-stack), judge their status, and give processing suggestions.910## Environment Preparation1112- GitHub Token configured (GH_TOKEN environment variable)13- Official F-Stack repository cloned to /data/workspace/f-stack14- gh CLI installed1516## Step 1: Read the Full Issue1718The full issue text and all discussions must be obtained; never judge from the title alone.1920```bash21export GH_TOKEN='<token>'2223# Get the issue body24gh issue view <NUMBER> -R F-Stack/f-stack2526# Get all comments (API, no truncation)27gh api repos/F-Stack/f-stack/issues/<NUMBER>/comments --jq '.[] | {user: .user.login, created_at: .created_at, body: .body}'28```2930Record the following:3132- Reporter (author)33- F-Stack / DPDK version34- Error symptoms (crash, performance, build failure, functional anomaly, etc.)35- Reproduction steps or environment description36- Existing discussion conclusions (whether maintainers replied, whether a solution exists)3738## Step 2: Search for Information3940Invoke the **f-stack-info-search** skill to search for information, which has five parts:4142- Check architecture docs and knowledge graph: three-layer architecture docs under docs/ (LAYER1/2/3) + KNOWLEDGE_GRAPH_WIKI43- Check commit history: local git log search for fixing commits + DPDK upstream44- Check related Issues and PRs: first check the local issue analysis archives (docs/zh_cn/f-stack-issue-ana.md, docs/f-stack-issue-ana.md), then gh search issues/prs + DPDK Patchwork45- Check public resources: DPDK Bugzilla / Patchwork / inbox.dpdk.org / web search46- Internal/external information search for general analysis/research tasks: tech blogs / WeChat articles / tech communities / internal knowledge bases / iWiki, bilingual keyword construction and three-way evidence convergence4748After the search, return to this skill and continue with Step 3 comprehensive judgment.4950## Step 3: Comprehensive Judgment5152Give a clear conclusion in Chinese (or English for the reply), using the following format:5354### Conclusion Templates5556```57## Issue #<NUMBER> Analysis Conclusion5859**Title:** <issue title>60**Status:** <one of the following>6162### Case 1: Already fixed63- Conclusion: fixed64- Fix commit: <hash> (<commit message>)65- Fixed in: F-Stack v<x.y> / DPDK <version>66- Backported: yes/no67- Suggested action: closable; reply telling the user to upgrade to v<x.y>6869### Case 2: Upstream patch exists but not merged70- Conclusion: upstream patch not merged71- Patch link: <URL>72- Patch status: Accepted / Under Review / Superseded73- Affected versions: fix status across DPDK 22.11 / 23.11 / 24.11 LTS74- Suggested action: wait for merge / cherry-pick manually7576### Case 3: Not fixed77- Conclusion: not fixed78- Root cause: <detailed description>79- Scope: <which versions/scenarios are affected>80- Fix plan: <suggested approach>81- Suggested action: development work needed8283### Case 4: Workaround exists84- Conclusion: workaround exists85- Workaround steps: <concrete operations>86- Root fix needed: yes/no87- Suggested action: reply with the workaround, keep the issue open pending a root fix8889### Case 5: Not a bug (usage question / outdated / cannot reproduce)90- Conclusion: not a bug / outdated / cannot reproduce91- Reason: <detailed explanation>92- Suggested action: closable; reply explaining the reason93```9495## Key Notes96971. **Never operate issues automatically**98 - After analysis, human confirmation is required before commenting on or closing an issue99 - Give suggested actions but do not execute them directly100 - Wait for explicit user instructions before acting (comment, close, label, etc.)101 - Issue reply comments must be in English, do not @ anyone, no long-winded analysis, do not repeat what existing replies already contain, and state only the core conclusion and key steps1021032. **Classify issue ownership**104 - F-Stack itself: code under lib/, the FreeBSD porting layer, ff_* APIs105 - DPDK upstream: code under dpdk/, drivers, EAL layer106 - User configuration: config.ini, hugepages, NIC offload, ASLR, etc.107 - Application integration: Nginx/Redis integration, multi-process architecture1081093. **DPDK version tracking**110111 - F-Stack v2.0 -> DPDK 24.11.6112 - F-Stack v1.25 -> DPDK 23.11.5113 - F-Stack v1.24 -> DPDK 22.11.6114 - F-Stack v1.22.1 -> DPDK 20.11.9115 - F-Stack v1.21.x -> DPDK 19.11.14116 - When DPDK versions are involved, clearly state the fix status across 22.11 / 23.11 / 24.11 LTS1171184. **Sync the issue analysis archives**119 - After every reply or issue modification, the local issue analysis archives must be updated:120 - Chinese: docs/zh_cn/f-stack-issue-ana.md121 - English: docs/f-stack-issue-ana.md122 - The two archives stay consistent (bilingual), recording: issue number, title, analysis conclusion, and actions taken (reply/close/fix commit)1231245. **Build fix rules**125 - After fixing a file, ensure all other files depending on it still compile126 - After modifying a common header, verify every file that includes it one by one127 - A full make with no errors is required before a PR128 - Build verification commands:129130 ```bash131 # F-Stack lib build verification132 cd /data/workspace/f-stack/lib && make clean && make133134 # ftdns-dev src build verification135 cd /data/workspace/ftdns-dev/src && make clean && make136 ```137138## Batch Analysis Flow139140When batch-analyzing multiple issues:141142```bash143# 1. Get all open issues in the given range144gh issue list -R F-Stack/f-stack --state open --limit 500 \145 --json number,title,labels,createdAt,author \146 --jq '[.[] | select(.number >= <START> and .number <= <END>)] | sort_by(.number)'147148# 2. Run the three-step analysis flow for each one149150# 3. Produce a categorized summary report including:151# - Total count152# - Classification by type (Bug / feature request / usage question / build issue)153# - Classification by status (fixed / not fixed / workaround exists / outdated)154# - Suggested action list (which to close, which need fixes, which need replies)155```156157## Relationship with Development Rules158159If the issue processing involves code changes, all mandatory rules of the f-stack-dev-rule skill must also be followed (rm/kill/chmod scripts, make clean builds, config.ini not committed, no real IPs in docs, English code comments, minimal lib comments, etc.).