Not in the top 1,000 by GitHub stars
al-nafisah/fpga-project-analyzer
See and review any Vivado / Zynq / PYNQ project: drill-down Vivado-style diagrams and clock-domain, constraint and overlay checks for AI coding agents.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/debug/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
39ecbb2a54e8 → e5b0d0adf693
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 39ecbb2a54e8
No earlier version was observed for comparison.
skills/explain/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
39ecbb2a54e8 → e5b0d0adf693
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 39ecbb2a54e8
No earlier version was observed for comparison.
skills/fpga-project-analyzer/SKILL.md
Week of Nov 2, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
39ecbb2a54e8 → e5b0d0adf693
A local comparison is unavailable. You can inspect the recorded versions on GitHub.
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 39ecbb2a54e8
No earlier version was observed for comparison.
skills/review/SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Not checked yet → After Instructions only
39ecbb2a54e8 → e5b0d0adf693
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Not checked yet
First observation → 39ecbb2a54e8
No earlier version was observed for comparison.
Verified commit e5b0d0adf6932b6135eaec0caf97614f2fb573da
git clone --filter=blob:none --no-checkout https://github.com/al-nafisah/fpga-project-analyzer.git .hotskills/al-nafisah-fpga-project-analyzer && git -C .hotskills/al-nafisah-fpga-project-analyzer checkout --detach e5b0d0adf6932b6135eaec0caf97614f2fb573da
# Copy each selected skill directory from .hotskills/al-nafisah-fpga-project-analyzer into .claude/skills/<skill-name>/Heat
3.7- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- debug
skills/debug - explain
skills/explain - fpga-project-analyzer
skills/fpga-project-analyzer - review
skills/review
How it works
debug
When your agent uses it
Find why an FPGA build failed (Vivado, HLS, PetaLinux) and how to fix it.
What it loads into context
Frontmatter
47 tokensAlways available to the agent
SKILL.md
160 tokensWhen the skill is activated
Reference documents
1,308 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
../../.claude-plugin/icon.pngasset426,163 bytes../../.claude-plugin/marketplace.jsonasset695 bytes../../.claude-plugin/plugin.jsonasset669 bytesSKILL.mdcore612 bytes../fpga-project-analyzer/SKILL.mddoc4,805 bytes
Read SKILL.md
Find why the FPGA build failed. Arguments ($ARGUMENTS) are a log file or a project folder; if none, use the current
folder and the logs with errors that the build summary lists first.
Read `../fpga-project-analyzer/SKILL.md` (relative to this file's directory) and follow it: `logs` for the log,
`build` + `show` to locate the cause in the design. Reply with the root cause, where it is (file:line or block),
and the exact fix.View the complete source on GitHubexplain
When your agent uses it
Explain an FPGA project (Vivado, Zynq, PYNQ) with an interactive drill-down diagram.
What it loads into context
Frontmatter
44 tokensAlways available to the agent
SKILL.md
146 tokensWhen the skill is activated
Reference documents
1,308 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
SKILL.mdcore583 bytes../fpga-project-analyzer/SKILL.mddoc4,805 bytes
Read SKILL.md
Explain the FPGA project in the folder given as arguments ($ARGUMENTS); if none, use the current folder.
Read `../fpga-project-analyzer/SKILL.md` (relative to this file's directory) and follow its workflow.
Focus on how the design works: a 3-8 word role note for every key block and 1-2 data-flow paths in the
overlay, then render the view. Reply with the diagram link and at most 6 short bullets.View the complete source on GitHubfpga-project-analyzer
When your agent uses it
Analyze and explain existing AMD/Xilinx FPGA projects visually - Vivado block designs (.xpr, .bd, .hwh, .xsa, BD Tcl), Verilog/SystemVerilog/VHDL, PYNQ overlays and notebooks, HLS/bare-metal C, device trees, timing/DRC reports and build logs. Builds a drill-down Vivado-style diagram (block design -> IP -> RTL -> registers) and finds bugs - clock-domain crossings, unconstrained I/O, reset polarity, address map, interrupts, PYNQ overlay mistakes. Use when asked to understand, review, document or debug an FPGA, Zynq, MPSoC or PYNQ project, or a failed Vivado build.
What it loads into context
Frontmatter
157 tokensAlways available to the agent
SKILL.md
1,308 tokensWhen the skill is activated
Reference documents
4,421 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- How to answer
- Overlay schema (.fpa/overlay.json)
- Vivado (optional, auto-detected)
- Limits
Scripts executed separately
scripts/fpa.pyscripts/fpalib/__init__.pyscripts/fpalib/assets/vendor/elk.bundled.jsscripts/fpalib/bdjson.pyscripts/fpalib/bdtcl.pyscripts/fpalib/build.pyscripts/fpalib/cli.pyscripts/fpalib/doc.pyscripts/fpalib/hdl.pyscripts/fpalib/hwh.pyscripts/fpalib/lint.pyscripts/fpalib/mcp.pyscripts/fpalib/model.pyscripts/fpalib/refs.pyscripts/fpalib/reports.pyscripts/fpalib/summary.pyscripts/fpalib/viewer.pyscripts/fpalib/vivado.pyscripts/fpalib/xdc.py
Files
SKILL.mdcore4,805 bytesSKILL.mdcore4,805 bytesSKILL.mdcore4,805 bytesreferences/review.mddoc5,337 bytesscripts/fpa.pyruns276 bytesscripts/fpalib/__init__.pyruns81 bytesscripts/fpalib/assets/vendor/ELK-LICENSE.mddoc14,480 bytesscripts/fpalib/assets/vendor/elk.bundled.jsruns1,585,569 bytesscripts/fpalib/assets/viewer.htmlasset52,568 bytesscripts/fpalib/bdjson.pyruns8,380 bytesscripts/fpalib/bdtcl.pyruns20,699 bytesscripts/fpalib/build.pyruns22,829 bytesscripts/fpalib/cli.pyruns6,187 bytesscripts/fpalib/doc.pyruns7,257 bytesscripts/fpalib/hdl.pyruns75,223 bytesscripts/fpalib/hwh.pyruns12,581 bytesscripts/fpalib/lint.pyruns28,748 bytesscripts/fpalib/mcp.pyruns8,494 bytesscripts/fpalib/model.pyruns4,505 bytesscripts/fpalib/refs.pyruns8,227 bytesscripts/fpalib/reports.pyruns11,785 bytesscripts/fpalib/summary.pyruns12,511 bytesscripts/fpalib/viewer.pyruns3,088 bytesscripts/fpalib/vivado.pyruns11,271 bytesscripts/fpalib/vivado/clock_map.tclasset1,547 bytesscripts/fpalib/vivado/export_bd.tclasset2,232 bytesscripts/fpalib/vivado/reports.tclasset670 bytesscripts/fpalib/vivado/rtl_netlist.tclasset2,325 bytesscripts/fpalib/xdc.pyruns4,016 bytes
Read SKILL.md
# FPGA Project Analyzer
Scripts read the project; you read their compact output. Do not open .bd/.hwh/.xpr/report files directly.
`FPA` below stands for `python3 <this skill's directory>/scripts/fpa.py`; type the full command each time
(a shell variable does not word-split in zsh). Outputs go to `<project>/.fpa/`.
## Workflow
1. `FPA build <project>` - extracts everything, runs the checks, prints a ~40-line summary
(blocks, clock domains, streams, AXI-MM, IRQ -> GIC/DT numbers, address map, software refs, reports, findings).
Repo with several boards/builds or a Makefile flow: point it at the build's own lists instead of scanning,
e.g. `--src sim/plps.d --src sim/psbd.d` (make .d / .f / .lst files, dirs or globs; repeatable).
2. Drill into what matters, never the whole tree:
- `FPA show <project> <block>` one block (`/` = top, `/stream_proc/scaler_0` = nested): pins, peers,
net names, clock domains, address, registers, software refs, src file:line; add `--nets` to list theView the complete source on GitHubreview
When your agent uses it
Review an FPGA project for hardware bugs - clock-domain crossings, pins, resets, address map, PYNQ overlay mistakes.
What it loads into context
Frontmatter
46 tokensAlways available to the agent
SKILL.md
158 tokensWhen the skill is activated
Reference documents
1,308 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
Files
../fpga-project-analyzer/SKILL.mddoc4,805 bytesSKILL.mdcore680 bytes
Read SKILL.md
Review the FPGA project in the folder given as arguments ($ARGUMENTS); if none, use the current folder.
Read `../fpga-project-analyzer/SKILL.md` (relative to this file's directory) and follow its workflow, including
`references/review.md`. Confirm each lint finding against the source, add what lint cannot see, and put every
confirmed finding (with file:line and fix) in the overlay. Reply with the diagram link (`?issues=1`) and the
findings ranked by severity.View the complete source on GitHubSkills included
- debug
- explain
- fpga-project-analyzer
- review
Repository facts
- License
- MIT
- Created
- Oct 26, 2026
- Last pushed
- Nov 1, 2026
- Forks
- 8
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 46 notes
skills/fpga-project-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/fpga-project-analyzer/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:1Analysis incomplete: file exceeds text byte budgetskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6418Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6419Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6420Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6421Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6422Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6423Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6424Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6425Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6426Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6427Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6428Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6429Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6430Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6431Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6432Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6433Analysis incomplete: physical or joined line exceeds character limitskills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6434Analysis incomplete: physical or joined line exceeds character limit
- No broad tool permissions
- 1 dangerous shell commandin 1 file: fpga-project-analyzer/scripts/fpalib/hdl.py:42
- 18 network referencesin 4 files: .claude-plugin/plugin.json:5 fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:17 .claude-plugin/marketplace.json:3 and 1 more
- 56 obfuscation signalsin 1 file: fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:6401
- No instruction overrides
- 19 executable scriptsin 19 files: fpga-project-analyzer/scripts/fpa.py:1 fpga-project-analyzer/scripts/fpalib/__init__.py:1 fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js:1 and 16 more
- 1 reference to secretsin 1 file: fpga-project-analyzer/scripts/fpalib/build.py:123
- No requests to vote in Hot
Show all 95 signals by file
.claude-plugin/marketplace.json
.claude-plugin/plugin.json
- Network accessline 5
"author": { "name": "Abdullah AlNafisah", "url": "https://github.com/al-nafisah" - Network accessline 6
"name": "Abdullah AlNafisah", "url": "https://github.com/al-nafisah" }, - Network accessline 7
"url": "https://github.com/al-nafisah" - Network accessline 8
}, "homepage": "https://github.com/al-nafisah/fpga-project-analyzer", "repository": "https://github.com/al-nafisah/fpga-project-analyzer", - Network accessline 9
"homepage": "https://github.com/al-nafisah/fpga-project-analyzer", - Network accessline 10
"repository": "https://github.com/al-nafisah/fpga-project-analyzer",
skills/fpga-project-analyzer/scripts/fpa.py
- Executable scriptline 1
#!/usr/bin/env python3
skills/fpga-project-analyzer/scripts/fpalib/__init__.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/assets/vendor/elk.bundled.js
- Executable scriptline 1
Executable file - Network accessline 17
* This program and the accompanying materials are made * available under the terms of the Eclipse Public License 2.0 * which is available at https://www.eclipse.org/legal/epl-2.0/ - Network accessline 18
* available under the terms of the Eclipse Public License 2.0 * which is available at https://www.eclipse.org/legal/epl-2.0/ * - Network accessline 19
* which is available at https://www.eclipse.org/legal/epl-2.0/ - Possible obfuscationline 6401
function Yud(b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r;if(d==null){return null}if(b.a!=c.gk()){throw scb(new Teb(WCe+c.ve()+XCe))}if(RD(c,455)){r=UYd(JD(c,670),d);if(!r){throw scb(new Teb(YCe+d+"' is not a valid enumerator of '"+c.ve()+"'"))}r - Possible obfuscationline 6402
function JTb(){JTb=Zcb;ITb=new Pp;Rc(ITb,(Rjd(),Cjd),Gjd);Rc(ITb,Njd,Gjd);Rc(ITb,Njd,Jjd);Rc(ITb,yjd,Fjd);Rc(ITb,yjd,Gjd);Rc(ITb,Djd,Gjd);Rc(ITb,Djd,Hjd);Rc(ITb,Ljd,Ajd);Rc(ITb,Ljd,Gjd);Rc(ITb,Ijd,Bjd);Rc(ITb,Ijd,Gjd);Rc(ITb,Ijd,Hjd);Rc(ITb - Possible obfuscationline 6403
function jUb(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B;a.d=new Edd(Kse,Kse);a.c=new Edd(Lse,Lse);for(m=b.Jc();m.Ob();){k=JD(m.Pb(),36);for(t=new rmb(k.a);t.a<t.c.c.length;){s=JD(pmb(t),9);a.d.a=$wnd.Math.min(a.d.a,s.n.a-s.d.b); - Possible obfuscationline 6404
function mhb(a,b){var c,d,e,f,g,h,i,j;c=0;g=0;f=b.length;h=null;j=new Vgb;if(g<f&&(ADb(g,b.length),b.charCodeAt(g)==43)){++g;++c;if(g<f&&(ADb(g,b.length),b.charCodeAt(g)==43||(ADb(g,b.length),b.charCodeAt(g)==45))){throw scb(new Mfb(Jse+b+' - Possible obfuscationline 6406
function lQb(a){var b,c,d,e,f;c=JD(WMb(a,(Iqc(),Wpc)),22);b=K9c(gQb);e=JD(WMb(a,(Bwc(),Iuc)),342);e==(eid(),bid)&&D9c(b,hQb);ydb(LD(WMb(a,Guc)))?E9c(b,(CQb(),xQb),(u5b(),k5b)):E9c(b,(CQb(),zQb),(u5b(),k5b));WMb(a,(Gcd(),Fcd))!=null&&D9c(b,i - Possible obfuscationline 6407
function c1b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C;if(b.dc()){return}e=new Rdd;h=c?c:JD(b.Xb(0),18);o=h.c;KOc();m=o.i.k;if(!(m==(DYb(),AYb)||m==BYb||m==wYb||m==vYb)){throw scb(new Teb('The target node of the edge must be - Possible obfuscationline 6408
function Iod(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P;t=JD(nDd((!a.b&&(a.b=new ree(v3,a,4,7)),a.b),0),84);v=t.lh();w=t.mh();u=t.kh()/2;p=t.jh()/2;if(RD(t,193)){s=JD(t,124);v+=oxd(s).i;v+=oxd(s).i}v+=u - Possible obfuscationline 6409
function rib(a,b){oib();var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;B=a.e;o=a.d;e=a.a;if(B==0){switch(b){case 0:return '0';case 1:return Vse;case 2:return '0.00';case 3:return '0.000';case 4:return '0.0000';case 5:return '0. - Possible obfuscationline 6410
function Z4c(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;a.c=b;a.g=new Irb;c=(Rod(),new dpd(a.c));d=new $Gb(c);WGb(d);t=OD(ksd(a.c,(D6c(),w6c)));i=JD(ksd(a.c,y6c),325);v=JD(ksd(a.c,z6c),424);g=JD(ksd(a.c,r6c),475);u=JD(ksd(a.c,x6c),4 - Possible obfuscationline 6412
function Vzc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L;c.Sg('Greedy cycle removal',1);t=b.a;L=t.c.length;a.a=SC(cE,ise,30,L,15,1);a.c=SC(cE,ise,30,L,15,1);a.b=SC(cE,ise,30,L,15,1);j=0;for(r=new rmb(t);r.a<r.c. - Possible obfuscationline 6413
function n$b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;m=0;for(e=new CHd((!b.a&&(b.a=new X0d(A3,b,10,11)),b.a));e.e!=e.i.gc();){d=JD(AHd(e),27);if(!ydb(LD(ksd(d,(Bwc(),svc))))){k=Zwd(d);if((XD(ksd(k,cuc))!==XD((nyc(),kyc))||XD(ksd(k,puc))===XD - Possible obfuscationline 6414
function cnd(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;v=JD(nDd((!a.a&&(a.a=new X0d(w3,a,6,6)),a.a),0),168);k=new Rdd;u=new Irb;w=fnd(v);gsb(u.f,v,w);m=new Irb;d=new Mtb;for(o=Dl(yl(WC(OC(VI,1),Nqe,20,0,[(!b.d&&(b.d=new ree(x3,b,8, - Possible obfuscationline 6415
function VVc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;c.Sg(Wze,1);D=JD(yBb(BBb(new RBb(null,new Gvb(b,16)),new hWc),hAb(new zAb,new xAb,new FAb,WC(OC(HL,1),Ere,131,0,[(lAb(),jAb)]))),15);k=JD(yBb(BBb(new RBb(null,new Gvb(b - Possible obfuscationline 6416
function A3c(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;t=Beb(MD(ksd(b,(h1c(),g1c))));n=Beb(MD(ksd(b,e1c)));m=Beb(MD(ksd(b,b1c)));R4c((!b.a&&(b.a=new X0d(A3,b,10,11)),b.a));r=h3c((!b.a&&(b.a=new X0d(A3,b,10,11)),b.a),t,a.b);for(q=0;q<r. - Possible obfuscationline 6417
function q2b(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;A=JD(WMb(a,(Bwc(),Evc)),100);if(!(A!=(ajd(),$id)&&A!=_id)){return}o=a.b;n=o.c.length;k=new Vlb((bk(n+2,Gre),Xy(tcb(tcb(5,n+2),(n+2)/10|0))));p=new Vlb((bk(n+2,Gre), - Possible obfuscationline 6418
function VHc(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K;I=new Ulb;for(o=new rmb(b.b);o.a<o.c.c.length;){m=JD(pmb(o),25);for(v=new rmb(m.a);v.a<v.c.c.length;){u=JD(pmb(v),9);u.p=-1;l=Lre;B=Lre;for(D=new rmb(u.j);D - Possible obfuscationline 6419
function Y2c(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q,r;p=false;i=false;m=a+1;o=(sDb(a,b.c.length),JD(b.c[a],186));h=o.a;j=null;for(g=0;g<o.a.c.length;g++){f=(sDb(g,h.c.length),JD(h.c[g],172));if(f.c){continue}if(f.b.c.length==0){Zgb();String - Possible obfuscationline 6420
function fme(a){var b,c,d;if(a.d>=a.j){a.a=-1;a.c=1;return}b=_fb(a.i,a.d++);a.a=b;if(a.b==1){switch(b){case 92:d=10;if(a.d>=a.j)throw scb(new eme(qEd((a9d(),WDe))));a.a=_fb(a.i,a.d++);break;case 45:if((a.e&512)==512&&a.d<a.j&&_fb(a.i,a.d)== - Possible obfuscationline 6421
function rRc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q;c.Sg('Process compaction',1);if(!ydb(LD(WMb(b,(kVc(),IUc))))){return}e=JD(WMb(b,KUc),86);n=Beb(MD(WMb(b,cVc)));sRc(a,b,e);oRc(b,n/2/2);o=b.b;hub(o,new HRc(e));for(j=Gtb(o,0);j.b!=j.d.c;){i - Possible obfuscationline 6422
function Bwc(){Bwc=Zcb;Tvc=(Lgd(),lgd);Uvc=mgd;Vvc=ngd;Wvc=ogd;Yvc=pgd;Zvc=qgd;awc=sgd;cwc=ugd;dwc=vgd;bwc=tgd;ewc=wgd;gwc=xgd;iwc=Agd;_vc=rgd;Svc=(Otc(),etc);Xvc=ftc;$vc=gtc;fwc=htc;Mvc=new NBd(ggd,jfb(0));Nvc=btc;Ovc=ctc;Pvc=dtc;ywc=Ftc;q - Possible obfuscationline 6423
function HAc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;c.Sg('Coffman-Graham Layering',1);if(b.a.c.length==0){c.Tg();return}v=JD(WMb(b,(Bwc(),Suc)),17).a;i=0;g=0;for(m=new rmb(b.a);m.a<m.c.c.length;){l=JD(pmb(m),9);l.p=i++;for(f=new e - Network accessline 6424
function $me(a){var b,c,d,e,f,g,h,i,j;a.b=1;fme(a);b=null;if(a.c==0&&a.a==94){fme(a);b=(ooe(),ooe(),++noe,new Soe(4));Moe(b,0,NGe);h=(null,++noe,new Soe(4))}else{h=(ooe(),ooe(),++noe,new Soe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e - Possible obfuscationline 6424
function $me(a){var b,c,d,e,f,g,h,i,j;a.b=1;fme(a);b=null;if(a.c==0&&a.a==94){fme(a);b=(ooe(),ooe(),++noe,new Soe(4));Moe(b,0,NGe);h=(null,++noe,new Soe(4))}else{h=(ooe(),ooe(),++noe,new Soe(4))}e=true;while((j=a.c)!=1){if(j==0&&a.a==93&&!e - Network accessline 6425
function d8b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;u=false;do{u=false;for(f=b?(new Ojb(a.a.b)).a.gc()-2:1;b?f>=0:f<(new Ojb(a.a.b)).a.gc();f+=b?-1:1){e=l_b(a.a,jfb(f));for(n=0;n<e.b;n++){l=JD(fu(e,n),9);if(!XMb(l,(Iqc(),jqc))){cont - Possible obfuscationline 6425
function d8b(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;u=false;do{u=false;for(f=b?(new Ojb(a.a.b)).a.gc()-2:1;b?f>=0:f<(new Ojb(a.a.b)).a.gc();f+=b?-1:1){e=l_b(a.a,jfb(f));for(n=0;n<e.b;n++){l=JD(fu(e,n),9);if(!XMb(l,(Iqc(),jqc))){cont - Network accessline 6426
function q6d(a){Dvd(a.c,rFe,WC(OC(hJ,1),hre,2,6,[EFe,'http://www.w3.org/2001/XMLSchema#decimal']));Dvd(a.d,rFe,WC(OC(hJ,1),hre,2,6,[EFe,'http://www.w3.org/2001/XMLSchema#integer']));Dvd(a.e,rFe,WC(OC(hJ,1),hre,2,6,[EFe,'http://www.w3.org/20 - Possible obfuscationline 6427
function FWc(a,b,c,d,e,f,g){var h,i,j,k,l,m,n,o;m=JD(d.a,17).a;n=JD(d.b,17).a;l=a.b;o=a.c;h=0;k=0;if(b==(Tgd(),Pgd)||b==Qgd){k=Iub(PAb(GBb(FBb(new RBb(null,new Gvb(c.b,16)),new eYc),new eXc)));if(l.e.b+l.f.b/2>k){j=++n;h=Beb(MD(zub(IBb(FBb( - Possible obfuscationline 6428
function Bkc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u;if(Lib(a.b,b)){if(Orb(JD(Nib(a.b,b),50),c)){return 1}}else{Qib(a.b,b,new Qrb)}if(Lib(a.b,c)){if(Orb(JD(Nib(a.b,c),50),b)){return -1}}else{Qib(a.b,c,new Qrb)}if(Lib(a.f,b)){if(Orb(J - Possible obfuscationline 6429
function VNd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n;g=true;l=null;d=null;e=null;b=false;n=uNd;j=null;f=null;h=0;i=NNd(a,h,sNd,tNd);if(i<a.length&&(ADb(i,a.length),a.charCodeAt(i)==58)){l=(zDb(h,i,a.length),a.substr(h,i-h));h=i+1}c=l!=null&&kob(zN - Possible obfuscationline 6430
function ZUb(){ZUb=Zcb;JTb();YUb=new Pp;Rc(YUb,(Rjd(),Djd),Cjd);Rc(YUb,Njd,Cjd);Rc(YUb,Ejd,Cjd);Rc(YUb,Kjd,Cjd);Rc(YUb,Jjd,Cjd);Rc(YUb,Hjd,Cjd);Rc(YUb,Kjd,Djd);Rc(YUb,Cjd,yjd);Rc(YUb,Djd,yjd);Rc(YUb,Njd,yjd);Rc(YUb,Ejd,yjd);Rc(YUb,Ijd,yjd); - Possible obfuscationline 6431
function cLc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w;c.Sg('Brandes & Koepf node placement',1);a.a=b;a.c=lLc(b);d=JD(WMb(b,(Bwc(),ivc)),279);n=ydb(LD(WMb(b,jvc)));a.d=d==(yoc(),voc)&&!n||d==soc;bLc(a,b);v=null;w=null;r=null;s=null - Possible obfuscationline 6432
function Dkc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D;if(b.k==(DYb(),yYb)&&c.k==AYb){f=JD(Mlb(JD(Bub(CBb(BBb(new RBb(null,new Gvb(b.j,16)),new Nkc))),11).e,0),18).c;e=f.i;h=JD(Mlb(JD(Bub(CBb(BBb(new RBb(null,new Gvb(b.j,16 - Possible obfuscationline 6433
function JPc(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;if(a.c.length==1){FPc((sDb(0,a.c.length),JD(a.c[0],120)));return sDb(0,a.c.length),JD(a.c[0],120)}else if(a.c.length<=0){return new _Qc}for(i=new rmb(a);i.a<i.c.c.l - Possible obfuscationline 6434
function A2d(a,b){switch(a.e){case 0:case 2:case 4:case 6:case 42:case 44:case 46:case 48:case 8:case 10:case 12:case 14:case 16:case 18:case 20:case 22:case 24:case 26:case 28:case 30:case 32:case 34:case 36:case 38:return new Nee(a.b,a.a, - Possible obfuscationline 6435
function kYc(a){var b,c,d,e,f,g,h,i;f=0;e=a.a.b;for(i=Gtb(a.a,0);i.b!=i.d.c;){h=JD(Utb(i),239);g=(f+1)/(e+1);if(!a.c&&!a.d){return}else if(!!a.c&&!a.d){a.g=true;if(a.b==(Tgd(),Pgd)){d=a.c.e.b+a.c.f.b+a.e*(f+1);b=new Edd(Beb(MD(WMb(a.c,(tUc( - Possible obfuscationline 6436
function DA(a,b,c,d,e,f){var g,h,i,j,k,l,m,n,o,p,q,r;switch(b){case 71:h=d.q.getFullYear()-hse>=-1900?1:0;c>=4?Qgb(a,WC(OC(hJ,1),hre,2,6,[jse,kse])[h]):Qgb(a,WC(OC(hJ,1),hre,2,6,['BC','AD'])[h]);break;case 121:sA(a,c,d);break;case 77:rA(a,c - Possible obfuscationline 6437
function r$b(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H;h$b(b);i=JD(nDd((!b.b&&(b.b=new ree(v3,b,4,7)),b.b),0),84);k=JD(nDd((!b.c&&(b.c=new ree(v3,b,5,8)),b.c),0),84);h=_Bd(i);j=_Bd(k);g=(!b.a&&(b.a=new X0d(w3,b,6,6)), - Possible obfuscationline 6438
function IWc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I;C=0;D=0;A=new Irb;v=JD(zub(IBb(FBb(new RBb(null,new Gvb(a.b,16)),new yXc),new aXc)),17).a+1;B=SC(cE,ise,30,v,15,1);q=SC(cE,ise,30,v,15,1);for(p=0;p<v;p++){B[p]= - Possible obfuscationline 6439
function r6d(a){if(a.gb)return;a.gb=true;a.b=Nvd(a,0);Mvd(a.b,18);Svd(a.b,19);a.a=Nvd(a,1);Mvd(a.a,1);Svd(a.a,2);Svd(a.a,3);Svd(a.a,4);Svd(a.a,5);a.o=Nvd(a,2);Mvd(a.o,8);Mvd(a.o,9);Svd(a.o,10);Svd(a.o,11);Svd(a.o,12);Svd(a.o,13);Svd(a.o,14) - Possible obfuscationline 6440
function p$b(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G;g=new Mtb;w=JD(WMb(c,(Bwc(),ruc)),86);p=0;xe(g,(!b.a&&(b.a=new X0d(A3,b,10,11)),b.a));while(g.b!=0){k=JD(g.b==0?null:(rDb(g.b!=0),Ktb(g,g.a.a)),27);j=Zwd(k);(XD(ksd - Possible obfuscationline 6441
function Iqc(){Iqc=Zcb;var a,b;kqc=new KBd(eve);Jpc=new KBd('coordinateOrigin');uqc=new KBd('processors');Ipc=new LBd('compoundNode',(xdb(),false));Zpc=new LBd('insideConnections',false);lqc=new KBd('originalBendpoints');mqc=new KBd('origin - Possible obfuscationline 6442
function Vkc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v;f=b;l=c;if(Lib(a.a,f)){if(Orb(JD(Nib(a.a,f),50),l)){return 1}}else{Qib(a.a,f,new Qrb)}if(Lib(a.a,l)){if(Orb(JD(Nib(a.a,l),50),f)){return -1}}else{Qib(a.a,l,new Qrb)}if(Lib(a.d,f) - Possible obfuscationline 6443
function GWc(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o;for(l=Gtb(a.b,0);l.b!=l.d.c;){k=JD(Utb(l),39);if(cgb(k.c,Dze)){continue}f=JD(yBb(new RBb(null,new Gvb(kQc(k,a),16)),hAb(new zAb,new xAb,new FAb,WC(OC(HL,1),Ere,131,0,[(lAb(),jAb)]))),15);b==(T - Possible obfuscationline 6444
function Lgd(){Lgd=Zcb;var a,b;Ned=new KBd(LBe);igd=new KBd(MBe);Ped=(ced(),Ydd);Oed=new MBd(Eye,Ped);new Fnd;Qed=new MBd(Oue,null);Red=new KBd(NBe);Yed=(Hed(),nrb(Ged,WC(OC(g2,1),Ere,296,0,[Ced])));Xed=new MBd(Qye,Yed);Zed=new MBd(Dye,(xdb - Possible obfuscationline 6445
function u5b(){u5b=Zcb;A4b=new v5b('DIRECTION_PREPROCESSOR',0);x4b=new v5b('COMMENT_PREPROCESSOR',1);B4b=new v5b('EDGE_AND_LAYER_CONSTRAINT_EDGE_REVERSER',2);R4b=new v5b('INTERACTIVE_EXTERNAL_PORT_POSITIONER',3);i5b=new v5b('PARTITION_PREPR - Possible obfuscationline 6446
function lHc(a,b,c){var d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb,cb,db,eb,fb,gb,hb,ib,jb,kb,lb;cb=0;for(H=b,K=0,N=H.length;K<N;++K){F=H[K];for(V=new rmb(F.j);V.a<V.c.c.length;){U=JD(p - Possible obfuscationline 6447
function Otc(){Otc=Zcb;Nrc=(Knc(),Inc);Mrc=new MBd(uwe,Nrc);csc=new MBd(vwe,(xdb(),false));isc=(ypc(),wpc);hsc=new MBd(wwe,isc);Hsc=new MBd(xwe,false);Isc=new MBd(ywe,true);arc=new MBd(zwe,false);atc=(vyc(),tyc);_sc=new MBd(Awe,atc);jfb(1); - Possible obfuscationline 6448
function ooe(){ooe=Zcb;Zne=new poe(7);_ne=(++noe,new ape(8,94));++noe;new ape(8,64);aoe=(++noe,new ape(8,36));goe=(++noe,new ape(8,65));hoe=(++noe,new ape(8,122));ioe=(++noe,new ape(8,90));loe=(++noe,new ape(8,98));eoe=(++noe,new ape(8,66)) - Possible obfuscationline 6449
function sJb(){sJb=Zcb;pJb=new vJb('OUT_T_L',0,(PHb(),NHb),(GIb(),DIb),(iHb(),fHb),fHb,WC(OC(UK,1),Nqe,22,0,[nrb((Eid(),Aid),WC(OC(r2,1),Ere,94,0,[Did,wid]))]));oJb=new vJb('OUT_T_C',1,MHb,DIb,fHb,gHb,WC(OC(UK,1),Nqe,22,0,[nrb(Aid,WC(OC(r2, - Possible obfuscationline 6450
function cPd(){cPd=Zcb;IOd=(GOd(),FOd).b;JD(nDd(STd(FOd.b),0),35);JD(nDd(STd(FOd.b),1),19);HOd=FOd.a;JD(nDd(STd(FOd.a),0),35);JD(nDd(STd(FOd.a),1),19);JD(nDd(STd(FOd.a),2),19);JD(nDd(STd(FOd.a),3),19);JD(nDd(STd(FOd.a),4),19);JOd=FOd.o;JD(n - Possible obfuscationline 6451
function Vie(a){var b;if(a.O)return;a.O=true;rvd(a,'type');ewd(a,'ecore.xml.type');fwd(a,eGe);b=JD(g1d((rOd(),qOd),eGe),1990);tCd(UTd(a.fb),a.b);Zvd(a.b,Nab,'AnyType',false,false,true);Xvd(JD(nDd(STd(a.b),0),35),a.wb.D,qFe,null,0,-1,Nab,fal - Possible obfuscationline 6452
function U8c(a,b,c,d){var e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,A,B,C,D,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,$,ab,bb;if(d.Yg()){return pnb(),pnb(),mnb}if(ydb(LD(ksd(b,(Lgd(),Ifd))))){return pnb(),pnb(),mnb}A=(!b.a&&(b.a=new X0d(A3,b,10 - Possible obfuscationline 6453
function cne(a,b){var c,d;if(!Wme){Wme=new Irb;Xme=new Irb;d=(ooe(),ooe(),++noe,new Soe(4));Jne(d,'\t\n\r\r ');Rib(Wme,RGe,d);Rib(Xme,RGe,Toe(d));d=(null,++noe,new Soe(4));Jne(d,UGe);Rib(Wme,PGe,d);Rib(Xme,PGe,Toe(d));d=(null,++noe,new Soe - Possible obfuscationline 6454
function Cwc(a){Rad(a,new cad(oad(jad(nad(kad(mad(lad(new pad,Ose),'ELK Layered'),'Layer-based algorithm provided by the Eclipse Layout Kernel. Arranges as many edges as possible into one direction by placing nodes into subsequent layers. T - Possible obfuscationline 6455
function Tie(a){Dvd(a.a,rFe,WC(OC(hJ,1),hre,2,6,[HDe,'anySimpleType']));Dvd(a.b,rFe,WC(OC(hJ,1),hre,2,6,[HDe,'anyType',sFe,qFe]));Dvd(JD(nDd(STd(a.b),0),35),rFe,WC(OC(hJ,1),hre,2,6,[sFe,ZFe,HDe,':mixed']));Dvd(JD(nDd(STd(a.b),1),35),rFe,WC( - Possible obfuscationline 6457
function Cwd(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p;if(a.r)return;a.r=true;rvd(a,'graph');ewd(a,'graph');fwd(a,_Ce);Ivd(a.o,'T');tCd(UTd(a.a),a.p);tCd(UTd(a.f),a.a);tCd(UTd(a.n),a.f);tCd(UTd(a.g),a.n);tCd(UTd(a.c),a.n);tCd(UTd(a.i),a.c);tCd(U - Possible obfuscationline 6458
function dme(){dme=Zcb;cme=SC($D,ZCe,30,Pse,15,1);cme[9]=35;cme[10]=19;cme[13]=19;cme[32]=51;cme[33]=49;cme[34]=33;Bmb(cme,35,38,49);cme[38]=1;Bmb(cme,39,45,49);Bmb(cme,45,47,-71);cme[47]=49;Bmb(cme,48,58,-71);cme[58]=61;cme[59]=49;cme[60]= - Possible obfuscationline 6459
function s6d(a){var b,c,d,e,f,g,h;if(a.hb)return;a.hb=true;rvd(a,'ecore');ewd(a,'ecore');fwd(a,BFe);Ivd(a.fb,'E');Ivd(a.L,'T');Ivd(a.P,'K');Ivd(a.P,'V');Ivd(a.cb,'E');tCd(UTd(a.b),a.bb);tCd(UTd(a.a),a.Q);tCd(UTd(a.o),a.p);tCd(UTd(a.p),a.R); - Possible obfuscationline 6460
var Cqe='object',Dqe='boolean',Eqe='number',Fqe='string',Gqe='function',Hqe=2147483647,Iqe='java.lang',Jqe={3:1},Kqe='com.google.common.base',Lqe=', ',Mqe='%s (%s) must not be negative',Nqe={3:1,4:1,5:1},Oqe='negative size: ',Pqe='no calls
skills/fpga-project-analyzer/scripts/fpalib/assets/viewer.html
- Network accessline 205
const $ = id => document.getElementById(id); const svg = $("svg"), vp = $("vp"); const NS = "http://www.w3.org/2000/svg"; - Network accessline 206
const svg = $("svg"), vp = $("vp"); const NS = "http://www.w3.org/2000/svg"; const ctx2d = document.createElement("canvas").getContext("2d"); - Network accessline 207
const NS = "http://www.w3.org/2000/svg";
skills/fpga-project-analyzer/scripts/fpalib/bdjson.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/bdtcl.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/build.py
skills/fpga-project-analyzer/scripts/fpalib/cli.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/doc.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/hdl.py
skills/fpga-project-analyzer/scripts/fpalib/hwh.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/lint.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/mcp.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/model.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/refs.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/reports.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/summary.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/viewer.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/vivado.py
- Executable scriptline 1
Executable file
skills/fpga-project-analyzer/scripts/fpalib/xdc.py
- Executable scriptline 1
Executable file
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 20 facts
- Executable script in code of a file that runsfpga-project-analyzer/scripts/fpa.py:1High confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/__init__.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/bdjson.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/bdtcl.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/build.py:1Low confidence
- Access to secrets in code of a file that runs: a variable, placeholder or call, not a stored valuefpga-project-analyzer/scripts/fpalib/build.py:123Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/cli.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/doc.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/hdl.py:1Low confidence
- Dangerous shell operation in code of a file that runsfpga-project-analyzer/scripts/fpalib/hdl.py:42High confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/hwh.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/lint.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/mcp.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/model.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/refs.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/reports.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/summary.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/viewer.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/vivado.py:1Low confidence
- Executable script in prose of a file that runsfpga-project-analyzer/scripts/fpalib/xdc.py:1Low confidence
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/debug/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/debug/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/debug/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/debug/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/debug/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.