main-rules
Experimental browser extension for hierarchical tab management, tree-based organization, and local-first tab state.
Install / Use
npx skills add firtoz/tab-canopyInstalls into whichever agent you are using.
Cursor Rules
Cursor IDE rules (v2)
Quality Score
Category
AutomationSupported Platforms
Tags
Skill content
View source on GitHubalwaysApply: true
Overview
This project uses Changesets for automated versioning and release management.
Changeset Workflow
When to Create/Update Changesets
For ANY changes that should result in a version bump and appear in the changelog:
-
Check for existing changesets first:
ls .changeset/*.md | grep -v "README.md" -
If a relevant changeset exists:
- Read the existing changeset file
- Append the new changes to the description
- Do NOT create a new changeset
-
If NO relevant changeset exists:
- Create a new empty changeset:
bun changeset add --empty - Populate it with the package and description
- Create a new empty changeset:
Changeset Format
---
"@tabcanopy/extension": patch | minor | major
---
Brief summary of changes
- Detailed bullet point 1
- Detailed bullet point 2
- etc.
Version Bump Guidelines
- patch (0.1.1 → 0.1.2): Bug fixes, minor tweaks, infrastructure improvements
- minor (0.1.1 → 0.2.0): New features, significant enhancements
- major (0.1.1 → 1.0.0): Breaking changes, major overhauls
Packages in this Project
@tabcanopy/extension- The browser extension package (main package)
When NOT to Create a Changeset
Do NOT create a changeset for:
- Changes that only affect documentation (README updates)
- Changes to tests only
- Typo fixes in comments
- Changes to CI/CD that don't affect the package
Testing
E2E Test Requirements
Most changes should include e2e tests. When making changes to extension behavior:
- Add e2e tests in
packages/e2e-tests/e2e/tab-tree.spec.ts(or relevant file) - Build before testing: E2E tests require a production build
bun run build - Run specific tests to verify your changes:
cd packages/e2e-tests bunx playwright test --grep "your test name" - Run full test suite to check for regressions:
bun run test:e2e
When to Add E2E Tests
Add e2e tests for:
- ✅ New tab creation behavior (window.open, ctrl+click, context menu)
- ✅ Tab tree structure changes (parent-child relationships)
- ✅ Tab movement and repositioning
- ✅ Collapse/expand behavior
- ✅ Tab closing behavior (single, with children, collapsed)
- ✅ Cross-window operations
- ✅ Any user-visible behavior changes
Skip e2e tests only for:
- ❌ Internal refactoring with no behavior changes
- ❌ Type-only changes
- ❌ Documentation updates
- ❌ Pure UI styling changes (consider visual regression tests instead)
Example Workflow
Scenario: User makes changes to extension code and infrastructure
- Check:
ls .changeset/*.mdshowsstrict-colts-watch.mdexists - Read: Check if it's relevant to current changes
- If relevant: Update
strict-colts-watch.mdwith new info - If not relevant: Create new changeset with
bun changeset add --empty
Release Process
The release is automated via GitHub Actions:
- Push changes to
mainwith a changeset - Changesets creates a "Version Packages" PR
- Merge the PR to trigger the release
- Extension uploads to Chrome Web Store as draft
- Manually publish from the dashboard
See docs/RELEASING.md for full details.
Related Skills
Agent-Reach
84.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
ruflo
73.0k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
nanobot
48.5kUltra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
Scrapling
82.8k🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ
Security Score
Audited on Invalid Date
