taxact-browser-automation-patterns
Patterns for automating TaxAct Business online (Ionic SPA) via Chrome browser MCP tools — field interaction, navigation, shadow DOM handling
Best use case
taxact-browser-automation-patterns is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Patterns for automating TaxAct Business online (Ionic SPA) via Chrome browser MCP tools — field interaction, navigation, shadow DOM handling
Teams using taxact-browser-automation-patterns should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/taxact-browser-automation-patterns/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How taxact-browser-automation-patterns Compares
| Feature / Agent | taxact-browser-automation-patterns | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Patterns for automating TaxAct Business online (Ionic SPA) via Chrome browser MCP tools — field interaction, navigation, shadow DOM handling
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# TaxAct Business Browser Automation Patterns
## When to Use
Automating data entry in TaxAct Business online (www.taxact.com/online/) using Codex-in-Chrome MCP tools.
## Key Architecture
TaxAct is an **Ionic SPA** — single-page app with shadow DOM components. Standard DOM queries often miss elements rendered inside web components.
## Navigation
```javascript
// Continue to next page
document.getElementById('CONTINUE').click();
// Page detection (wait for SPA to render)
setTimeout(() => {
document.title = document.body.innerText.substring(300, 1200);
}, 3000);
// Top-level tabs
document.getElementById('first-tab').click(); // About the Business
document.getElementById('third-tab').click(); // Federal
document.getElementById('fourth-tab').click(); // State
document.getElementById('fifth-tab').click(); // Review
document.getElementById('sixth-tab').click(); // Filing
```
## Field Interaction
TaxAct uses React-style controlled inputs. Direct `.value =` assignment is ignored. Use the native setter pattern:
```javascript
const nativeSetter = Object.getOwnPropertyDescriptor(
window.HTMLInputElement.prototype, 'value'
).set;
nativeSetter.call(field, 'value');
field.dispatchEvent(new Event('input', {bubbles: true}));
field.dispatchEvent(new Event('change', {bubbles: true}));
field.dispatchEvent(new Event('blur', {bubbles: true}));
```
## Field Discovery
Fields have IDs like `FTXT_FEDERAL_317_1_12`. No aria-labels. Map by Y-position:
```javascript
const fields = Array.from(document.querySelectorAll('input[id^="FTXT_"]'))
.map(f => ({id: f.id, y: f.getBoundingClientRect().y, val: f.value}))
.sort((a, b) => a.y - b.y);
```
## Radio Buttons
Pattern: `FRAD_FEDERAL_NNN_N_NN` with name `FRAD_DEFAULT`:
```javascript
const radio = document.getElementById('FRAD_FEDERAL_146_1_25');
radio.checked = true;
radio.dispatchEvent(new Event('change', {bubbles: true}));
```
## Checkboxes
Pattern: `FCHK_FEDERAL_NNN_N_NNN`:
```javascript
const cb = document.getElementById('FCHK_FEDERAL_17_1_304');
cb.checked = true;
cb.dispatchEvent(new Event('change', {bubbles: true}));
```
## Select/Picklist
TaxAct picklists have a hidden `<select>` and a visible `picklist-input` text field. Set both:
```javascript
sel.value = '44';
sel.dispatchEvent(new Event('change', {bubbles: true}));
// Also update visible picklist-input if present
```
## Review Links (Federal Deductions)
On the Federal deductions summary, "Review" links are sequential `<a>` elements. Index from ~34:
- Compensation of officers = index 34
- Salaries and wages = index 35
- Taxes and licenses = index 39
- Other deductions = index 52
## Pitfalls
1. **Stale tab titles** — SPA navigation doesn't update `document.title`. Always re-read with `document.body.innerText`.
2. **Shadow DOM** — some pages (especially Alerts) render in Ionic shadow DOM. The `read_page` accessibility tree may show content the DOM walker cannot find. Use `read_page` with `filter: "interactive"` as fallback.
3. **Click timing** — after `.click()`, wait 3s before reading new page content. The SPA needs time to render.
4. **Balance sheet rounding** — TaxAct computes depreciation independently. Expect $1-3K variance from manual calculations. Adjust accumulated depreciation by $1 if needed to balance Schedule L.
5. **No Yes/No buttons** — some pages use `<input type="radio">` instead of `<button>`. Check both.Related Skills
handle-pdf-download-popups-in-automation
Recover when PDF download buttons open inaccessible popups; fall back to capturing structured data instead
handle-browser-automation-financial-site-blocks
Workflow for working around Chrome extension blocks on financial sites during data collection tasks
github-issue-automation-evidence-fields
Use when building GitHub issue classifiers, dashboards, closeout verifiers, or queue/report automation that depends on comments, approval evidence, or linked PR handoff state.
freecad-automation
AI-powered automation agent for FreeCAD CAD operations including natural language processing, batch processing, parametric design, and marine engineering applications. Use for CAD automation, drawing generation, FEM preprocessing, and integration with offshore analysis tools.
shell-script-hardening-patterns
Harden Bash automation scripts with TDD-first static and behavioral checks, safe Python invocation via uv, locking, persistent state, and review-driven correction loops.
automation
Workflow automation, CI/CD pipelines, and task orchestration patterns across platforms like n8n, GitHub Actions, and Make.
plan-automation-contracts
Tighten plans for scheduled/reporting workflows and multi-source detectors so adversarial review can verify runtime, publication, and normalization behavior.
taxact-business-c-corp-filing-packet
Assemble and execute a packet-first TaxAct Business filing workflow for C-Corp Form 1120 returns using existing repo artifacts, with strict pre-submit gates and human approval.
invoice-automation
Automate invoice generation for engineering consulting services using YAML configuration and Word document templates.
repo-cleanup-conflict-resolution-patterns
Sub-skill of repo-cleanup: Conflict Resolution Patterns (+2).
git-advanced-9-monorepo-patterns
Sub-skill of git-advanced: 9. Monorepo Patterns.
docker-4-networking-patterns
Sub-skill of docker: 4. Networking Patterns (+1).