taxact-browser-automation-patterns

Patterns for automating TaxAct Business online (Ionic SPA) via Chrome browser MCP tools — field interaction, navigation, shadow DOM handling

5 stars

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

$curl -o ~/.claude/skills/taxact-browser-automation-patterns/SKILL.md --create-dirs "https://raw.githubusercontent.com/vamseeachanta/workspace-hub/main/.agents/skills/workspace-hub/learned/taxact-browser-automation-patterns/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/taxact-browser-automation-patterns/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How taxact-browser-automation-patterns Compares

Feature / Agenttaxact-browser-automation-patternsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

5
from vamseeachanta/workspace-hub

Recover when PDF download buttons open inaccessible popups; fall back to capturing structured data instead

handle-browser-automation-financial-site-blocks

5
from vamseeachanta/workspace-hub

Workflow for working around Chrome extension blocks on financial sites during data collection tasks

github-issue-automation-evidence-fields

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Workflow automation, CI/CD pipelines, and task orchestration patterns across platforms like n8n, GitHub Actions, and Make.

plan-automation-contracts

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

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

5
from vamseeachanta/workspace-hub

Automate invoice generation for engineering consulting services using YAML configuration and Word document templates.

repo-cleanup-conflict-resolution-patterns

5
from vamseeachanta/workspace-hub

Sub-skill of repo-cleanup: Conflict Resolution Patterns (+2).

git-advanced-9-monorepo-patterns

5
from vamseeachanta/workspace-hub

Sub-skill of git-advanced: 9. Monorepo Patterns.

docker-4-networking-patterns

5
from vamseeachanta/workspace-hub

Sub-skill of docker: 4. Networking Patterns (+1).