Reference

Skills Reference

Complete reference for all 5 Triqual skills (slash commands)

Skills Reference

Category: Reference | Updated: 2026-02-02

Complete reference for all 5 Triqual skills (slash commands) with usage, arguments, and examples.


Overview

Triqual provides 5 skills accessible via slash commands:

SkillCommandPurpose
init/initInitialize project configuration
test/testFull autonomous test generation
check/checkLint tests for violations
rules/rulesView best practices
help/helpGet help and troubleshooting

/init - Initialize Project

Purpose

Analyzes your project structure and generates Triqual configuration.

Usage

/init

What It Creates

File/DirectoryPurpose
.triqual/runs/Run logs (one per feature)
.triqual/knowledge.mdProject-specific patterns
triqual.config.tsMain TypeScript configuration
Docs/context/ (optional)Additional context files

Configuration Generated

// triqual.config.ts
import { defineConfig } from 'triqual';

export default defineConfig({
  project_id: 'your-project-id',
  testDir: './automation/playwright/tests',
  baseUrl: process.env.BASE_URL || 'http://localhost:3000',

  auth: {
    strategy: 'storageState',
    storageState: { path: '.auth/user.json' },
  },
});

When to Use

  • First time - Setting up Triqual in a new project
  • After cloning - Regenerating config in a fresh clone
  • Config lost - Recreating deleted config files

/test - Autonomous Test Generation

Purpose

Full autonomous test generation with documented learning loop (ANALYZE → RESEARCH → PLAN → WRITE → RUN → LEARN).

Usage Variants

1. Feature Name (Standard)

/test login

Generates tests for the "login" feature with:

  • Context loading from Quoth/Exolar
  • Run log at .triqual/runs/login.md
  • Test code at .draft/tests/login.spec.ts
  • Autonomous healing up to 25 attempts

2. Interactive Exploration

/test --explore dashboard

Opens visible browser for manual exploration:

  • No test files created
  • Interactive session
  • Useful for app discovery

3. From Linear Ticket

/test --ticket ENG-123

Generates tests from Linear ticket acceptance criteria:

  • Fetches ticket details
  • Extracts acceptance criteria
  • Creates run log with requirements
  • Generates comprehensive tests

4. From Description

/test --describe "Verify user can reset password via email link"

Generates tests from text description:

  • Documents description in run log
  • Creates test strategy
  • Generates implementation

The Agentic Loop

/test login
    │
    ├─► triqual_load_context (MCP tool)
    │   └─► Writes .triqual/context/login/
    │
    ├─► test-planner
    │   └─► Creates .triqual/runs/login.md
    │
    ├─► test-generator
    │   └─► Writes .draft/tests/login.spec.ts
    │
    └─► test-healer (AUTONOMOUS LOOP)
        └─► Runs, fixes, loops until PASS or 25 attempts

Promotion After Success

When tests pass, promotion is BLOCKED. User must explicitly approve:

# Review the test
cat .draft/tests/login.spec.ts

# Approve promotion
git mv .draft/tests/login.spec.ts tests/login.spec.ts

/check - Lint Tests for Violations

Purpose

Scans test files for Playwright best practice violations.

Usage

# Check all tests
/check

# Check with minimum severity
/check --severity warning
/check --severity error

Severity Levels

LevelDescription
infoMinor suggestions
warningPotential issues
errorCritical violations

What It Checks

31 rules across 8 categories:

1. Locators & Selectors

  • Prefer data-testid over CSS selectors
  • Avoid XPath locators
  • Use role-based locators where possible

2. Waits & Timing

  • No hardcoded setTimeout
  • Use waitFor methods
  • Avoid waitForTimeout

3. Assertions

  • Use expect().toBeVisible() not .toBeTruthy()
  • Prefer soft assertions in loops
  • Chain assertions logically

4. Page Objects

  • Encapsulate selectors in Page Objects
  • Reuse locators
  • Export Page Objects from pages/

5. Test Organization

  • Use describe blocks
  • Independent test cases
  • Setup/teardown in beforeEach/afterEach

6. Network Mocking

  • Mock external APIs
  • Use page.route() for stable tests
  • Avoid real API calls in tests

7. Parallelization

  • Tests should not share state
  • Use test isolation
  • Avoid global variables

8. Debugging

  • Use page.screenshot() on failure
  • Add test.info() for context
  • Enable trace on CI

Example Output

✅ tests/login.spec.ts - 0 violations
❌ tests/dashboard.spec.ts - 3 violations
  ⚠️  Line 12: Avoid hardcoded setTimeout (use waitFor instead)
  ⚠️  Line 23: Prefer data-testid over CSS class selectors
  ❌ Line 45: Test shares state with previous test

/rules - View Best Practices

Purpose

Display comprehensive Playwright best practices (31 rules).

Usage

# View all rules
/rules

# View specific category
/rules locators
/rules waits
/rules assertions

Categories

CategoryRulesDescription
locators5Selector strategies
waits4Timing and synchronization
assertions4Verification patterns
page-objects3Page Object Model
organization5Test structure
mocking3Network mocking
parallel4Parallelization
debug3Debugging techniques

Example Output

# Locators & Selectors

## Rule 1: Prefer data-testid attributes

**Why:** Resilient to UI changes, explicit test intent

**Good:**
```typescript
await page.getByTestId('login-button').click();

Bad:

await page.locator('.btn.primary').click();

(... and so on for all 31 rules)


---

## /help - Get Help

### Purpose

Show available commands, troubleshooting tips, and guidance.

### Usage

```bash
# General help
/help

# Topic-specific help
/help installation
/help workflow
/help debugging

Topics

TopicContent
installationSetup and MCP authentication
workflowLearning loop stages
debuggingHook debugging, session state
mcpQuoth/Exolar connection issues
promotionDraft folder and promotion

Command Comparison

NeedUse
Setup project/init
Generate tests autonomously/test login
Explore app manually/test --explore dashboard
From ticket/test --ticket ENG-123
From description/test --describe "..."
Check test quality/check
View best practices/rules
Get help/help

Related Documentation


Next Steps: Run /test login to generate your first test, or /check to lint existing tests.