What does Project Search (Whole-Net Similar Technology Research) do?
Before starting a thesis or making a plan, help you find similar technologies/projects/articles to learn from across the entire web, primarily GitHub open-source repositories, supplementing with other sources as needed. Deliver links, reliability signals, and points to learn from in the conversation. Do not write business code, clone repositories, give lessons, or generate research Markdown files.
Platform Compatibility
Follows the Agent Skills open standard. Usable in Cursor, Claude Code, Codex, Gemini CLI, and other agents that comply with this standard without modifying files. See the repository README for installation paths.
Platform-specific behavior differences:
- Cursor:
disable-model-invocation: truetakes effect; only triggered by explicit commands/@project-search - Claude Code / Codex, etc.: Ignore this field; may trigger automatically; if you don't want automatic triggering, use their respective configuration files (e.g., Claude Code's
allowed-toolsand permission settings) - Search tools are adapted per platform: Cursor/Claude Code use WebSearch, Codex uses web_search; GitHub part prefers
gh search repos(when GitHub CLI is installed)
Boundaries with Other Skills
| This Skill Handles | Does Not Handle |
|---|---|
| Whole-net similar technology research (mainly GitHub) | Principle lessons, LEARNING.md → project-learn |
| Candidate filtering, authority assessment, learning points (delivered in conversation) | Time estimation → project-progress |
When this skill's command is not heard: Do not proactively start research.
Commands
| User Says | You Do |
|---|---|
/project_search / @project-search / start research / tech research / search similar across web / search open-source first / find similar projects | Run the full research process, deliver results only in the conversation |
/project_imitate / @project-imitate | Same as above (backward compatibility) |
deep-dive XX-xx (e.g., GH-02, WEB-01) | Reopen that link, enhance the summary and learning points; raise attention level to "Recommended" |
exclude XX-xx | Change attention level to "Not Recommended"; place lower in the ranking |
adopt XX-xx | Raise attention level to "Most Recommended"; update "My Suggestions" if necessary |
change requirements to... and search again / search again... | Update requirement summary/search terms and perform incremental search; preserve user-set attention levels |
keep only GitHub / prefer papers / Chinese blogs only | Narrow down sources for this round |
Workflow
- Listen to what is needed (one or two sentences): Deliverable, technical preferences, must-haves / must-not-haves. If already clear, search directly.
- Define search axes: Task type + tech stack + key mechanism; at least one round in Chinese and one in English.
- Search online (GitHub first, others as needed):
- GitHub (primary): Prefer using
gh search repos(if GitHub CLI is installed in the environment); if nogh, use the environment's built-in web search tool to searchsite:github.com; for selected results, read the README/summary - Web search: Use the available search tool in the current environment (Cursor/Claude Code's WebSearch, Codex's web_search, etc.)
- Official documentation / standards sites: Language or framework documentation, RFCs, etc. (when the need is API/usage-oriented)
- Papers and preprints: arXiv, OpenReview, Semantic Scholar, etc. (for method/model-related needs)
- Model and data hubs: Hugging Face, Papers with Code (when ML-related)
- Tech blogs and communities: Dev.to, Medium, company engineering blogs, Juejin/CSDN/Zhihu, etc. (as supplements, not default primary evidence)
- Q&A sites: Stack Overflow, GitHub Discussions (for troubleshooting or architecture debates)
- GitHub (primary): Prefer using
- Select: First state the requirements, then compare authority and maintainability. Main list: approximately 5–10 items; clearly irrelevant ones should not be forced in; can be mentioned in one line under "Not Selected".
- Conversation delivery: Report using the structure below; start with the conclusion (which items are more recommended), then list candidates.
- Wrap up: Tell the user they can say
deep-dive GH-02/exclude WEB-01/change requirements to... and search again.
Do not pad the list for the sake of "more sources." If there are already high-quality runnable repositories on GitHub, blog posts should only serve as supporting evidence.
Links (Mandatory)
For every external source (GitHub, CSDN, Juejin, Zhihu, documentation sites, arXiv, Hugging Face, Stack Overflow, blogs, etc.), each candidate must include a clickable full URL.
Rules:
- Use real
https://...links; for GitHub use the repository page (e.g.,https://github.com/owner/repo), for CSDN/blogs use the article page; do not write only the site name or short repository name - Write in a clickable form in the conversation, e.g.:
Link: https://github.com/owner/repoor Markdown[owner/repo](https://github.com/owner/repo) - If there is no reliable link, do not include it in the main list; if it can only be vaguely mentioned, put it under "Not Selected" with the note "No reliable link"
- Forbidden to fabricate URLs; if not found, mark
Link: Unknown (not verified)and do not use it as a primary/secondary reference - When
deep-dive XX-xxis invoked, restate and reuse the same link; if a more accurate page is found (README, paper PDF), it can be appended, but do not delete the main link
Speech and Writing Style
- Personal assistant giving advice: direct, short sentences, minimal filler phrases
- Start with the conclusion, then point to candidate IDs
- Follow the "Output Tone Guidelines" at the end of this document: use "" for quotes; leave a blank line between paragraphs
- Keep the field structure stable for easy user reference via ID
Search Quality
- Break down keywords into: task type + tech stack + key mechanism
- Even popular items that do not match the requirements should not enter the main list
- When roughly relevant: prioritize runnable, actively maintained, well-documented, and permissively licensed projects
- Multiple results for the same idea: keep one representative entry, merge the rest into one sentence
Authority Level (Mandatory for Each Entry, No Fabrication)
Write verifiable signals + a one-sentence human-readable interpretation; if none exist, write Unknown.
| Source Type | Priority Signals |
|---|---|
| GitHub | Stars, Forks, Recent commits/Releases, License (write if available) |
| Paper | Publication/Preprint year, Citations or Conference name (write if verifiable) |
| HF / PwC | Downloads, Likes, Associated papers or benchmarks |
| Blog/Community | Reads/Likes (if visible on page), Author is official/maintainer |
| Documentation Site | Official or not, Version matches the current stack |
Example format:
Authority Level: 12.4k stars · 2.1k forks · recent commits in the last month — More stable as primary referenceAuthority Level: ICLR 2024 · citations not verified — The method is worth looking at, but engineering maturity should be checked via another repository
Candidate IDs
Stable prefixes, do not reuse old IDs when changing links:
GH-01… — GitHub repository (primary)DOC-01… — Official/standard documentationPAPER-01… — Paper/preprintHF-01… — Hugging Face or other model/dataset cardWEB-01… — Blog, tutorial, Q&A post, other web pages
Single Candidate (Keep Short in Conversation)
Attention Level (four tiers, highest to lowest):
| Level | Meaning | How to Trigger |
|---|---|---|
Most Recommended | Key adoption, prioritize copying its ideas | adopt XX-xx |
Recommended | Worth a detailed look | deep-dive XX-xx |
Watchable | General candidate, as a backup | Default initial |
Not Recommended | Excluded, ranked lower | exclude XX-xx |
Report candidates sorted by attention level from highest to lowest.
Single candidate fields:
- Link (full URL, required) + Attention Level
- Authority Level
- What this is: 2–4 sentences
- Why it's worth your attention: Compare against requirements; do not just say "it's popular"
- Parts you can learn from: 2–5 actionable items (structure, workflow, directory, API, training recipe, etc.)
- Parts not worth learning from: 1–2 sentences on limitations
Example format:
### GH-01 · owner/repo
- Link: https://github.com/owner/repo
- Attention Level: Watchable
- Authority Level: ...
### WEB-01 · A CSDN Tutorial
- Link: https://blog.csdn.net/.../article/details/...
- Attention Level: Watchable
- Authority Level: ...
Do not write just the name without the link; do not paste large code blocks. Mention the license only as a reminder, not as a legal conclusion.
Report Skeleton (Conversation Use)
Arrange candidates by attention level from highest to lowest: Most Recommended → Recommended → Watchable → Not Recommended.
## Requirement Summary
(One or two sentences)
## My Suggestions
(The top 2–3 IDs to look at first, with a one-sentence reason)
## Candidates
### GH-01 · ... (Most Recommended)
- Link: https://github.com/...
- Attention Level: Most Recommended
- Authority Level: ...
- Parts you can learn from: ...
- Parts not worth learning from: ...
...
### WEB-01 · ... (Recommended)
- Link: https://blog.csdn.net/... or other full URL
- Attention Level: Recommended
...
## Not Selected (Optional)
- ... — Reason
## What You Can Say Next
deep-dive GH-xx / exclude WEB-xx / change requirements to... and search again
Follow-up Questions and Revisions
- When a specific ID is mentioned: Only deepen that item and verbally state the status change
- When requirements are changed and a new search is requested: Use new IDs or clearly state which one is replaced; preserve existing attention levels as much as possible
Deliberately Not Done
- Generate
PROJECT_IMITATE.md/PROJECT_SEARCH.mdor any research Markdown file - Ask "Should I create a new Markdown file?"
- Only report a repository name/article title without providing a URL
- Automatically clone / copy someone else's code into the repository
- Proactively research without being triggered
- Maintain
LEARNING.mdor make progress estimates (unless the user has enabled the corresponding skill at the same time)
Short Opening Statement on Enable
Starting research. Primarily GitHub open-source, supplementing with documentation, papers, blogs, etc. as needed.
Every external source will include a full link. Results will only be delivered in the conversation, no research markdown files.
Afterwards, you can say deep-dive GH-xx, exclude WEB-xx, or change requirements and search again.
Output Tone Guidelines
Follow this guide for conversation with the user, except for code, commands, fixed command templates, and table field names.
(This specification is inlined from project-shared/output-voice.md; there is no external dependency within the repository.)
General Tone
Like a knowledgeable person earnestly discussing a specific topic. Prefer short sentences. Explain one thing at a time. Avoid excessive parallelism and summary-like phrasing.
This Skill's role: Personal assistant providing research advice; start with the conclusion, then point to IDs like GH/WEB/PAPER; do not save research files.
Punctuation (When Addressing the User)
- Use "" (straight double quotes) for quoting commands, short terms, or emphasis, e.g.: "Got it," "Just do it, don't explain"
- Do not use curly/smart quotes
- For filenames, code, and commands themselves, prefer inline code, e.g.:
`start research`
Line Spacing (When Addressing the User)
- Leave a blank line between paragraphs
- Leave a blank line between explanation blocks
- Do not compress the entire screen into one block; do not have more than three consecutive blank lines
Use Sparingly or Not at All (Revise Immediately if Present)
- Filler connectives: "In addition," "In summary," "Overall," "It is worth noting," "It is not difficult to find," "As is well known," "Undeniably"
- Cliché phrases: "In essence," "This means," "In other words," "Let's take a look," "In today's... era"
- Corporate jargon: "Empower," "Close the loop," "Leverage," "Align on understanding," "Highly aligned," "Execute and close the loop"
- Sentence pattern: "It's not A, but B" → Just write the sentence you wanted to say directly
- Hard three-part opening: "First... Second... Finally..." → Break it up
- Fake examples: "For instance, once..." → Prefer this project, something the user just mentioned, or mark as "Example pending"
- Generic tool names → Use specific names (GitHub,
gh search,curl, etc.)
Encouraged to Write Like This
- Start with an actionable conclusion or status, then provide evidence
- Mix long and short sentences; an important sentence can stand alone on a line
- Acknowledge uncertainty
- Use specific numbers, paths, IDs, step names
- End with a next action, not a grand sentiment
Self-Check (Scan After Writing)
- Are there three consecutive sentences with the same parallel structure?
- Are there any instances of "In summary / In essence / Essentially"?
- Are the examples specific or fabricated?
- Does the ending point to a next step, or is it an empty reflection?
- Is there a blank line between paragraphs?