WP Manifestindependent plugin directory
manifest / admin / wp-decker

Decker WP Registry grade D+. High-severity findings · 4 findingsWP RegistryHigh-severity findings · 4 findingsOpen the reportD+

WordPress plugin to manage task lists with a Kanban board and unique priority system

★ 3stars
104release downloads
v2.1.17latest · 20d ago

Install

Download decker-2.1.17.zip From the v2.1.17 release on GitHub, Oct 2, 2026

Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/ateeducacion/wp-decker/releases/download/v2.1.17/decker-2.1.17.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Decker is a WordPress plugin developed for internal use at the Área de Tecnología Educativa (ATE). Its main goal is to efficiently present a task list with a simple Kanban board interface and unique priority system.

Demo

Try Decker instantly in your browser using WordPress Playground. The demo includes sample data.

 
 Preview in WordPress Playground 
 

Key Features

  • Kanban board with drag-and-drop and a distinctive priority system (including Max Priority).
  • Import from Nextcloud Deck (one-way) through the API.
  • AI Description Improvements: Gemini Nano (browser) or Gemini API (server-side).
  • Individual Calendar Feeds for event types (Meeting, Absence, Warning, Alert).
  • Collaborative editing of tasks (optional, WebRTC).
  • Email-to-post endpoint.
  • Multisite support.
  • Follows WordPress Coding Standards.
  • Continuous Integration pipeline.

Installation

  1. Download the latest release from the GitHub Releases page.
  2. Upload the ZIP via Plugins → Add New → Upload Plugin.
  3. Activate the plugin.
  4. Configure under Settings → Decker (AI provider, notifications, collaborative editing, etc.).

AI description improvements

  • Gemini Nano (browser-based) keeps the prompt inside a compatible browser.
  • Gemini API (server-side) sends the prompt from WordPress using a key stored in settings.

The saved Gemini API key is never exposed in public JavaScript, REST responses, or the settings form after saving.

Documentation

Plain Markdown documentation lives in the docs/ folder:

Development

make up

This starts a Dockerized WordPress instance at http://localhost:8888
(admin / password).

See docs/development.md for more details, available hooks and Make targets.

Working with AI coding agents

Project conventions for agents live in AGENTS.md, which CLAUDE.md and .github/copilot-instructions.md point at so every assistant reads the same rules.

Reusable procedures ship as agent skills in .agents/skills/ and .claude/skills/, installed with gh skill add. They cover plugin development, the REST API, WordPress.org directory guidelines, Playground blueprints, performance, project triage, plugin security and security auditing. None of it is included in the release ZIP.

Releases

Newest 25 of 60 recorded releases. Each count is every asset in that release; expand a row for the breakdown.

Tag
Published
Assets
Downloads
v2.1.17 latest
Oct 2, 2026 20d ago
decker-2.1.17.zip
6
Sep 19, 2026 1mo ago
decker-2.1.16.zip
3
Aug 26, 2026 1mo ago
decker-2.1.15.zip
3
Aug 24, 2026 1mo ago
decker-2.1.14.zip
0
Jul 22, 2026 3mo ago
decker-2.1.13.zip
3
Jul 10, 2026 3mo ago
decker-2.1.12.zip
1
Jun 16, 2026 4mo ago
decker-2.1.11.zip
1
Jun 16, 2026 4mo ago
tag only
—
May 9, 2026 5mo ago
decker-2.1.9.zip
6
Mar 17, 2026 7mo ago
decker-2.1.8.zip
0
Mar 16, 2026 7mo ago
decker-2.1.7.zip
0
Mar 9, 2026 7mo ago
decker-2.1.6.zip
1
Mar 3, 2026 7mo ago
decker-2.1.5.zip
4
Feb 19, 2026 8mo ago
decker-2.1.4.zip
3
Feb 19, 2026 8mo ago
decker-2.1.3.zip
1
Feb 6, 2026 8mo ago
decker-2.1.2.zip
5
Nov 27, 2025 10mo ago
decker-2.1.1.zip
3
Nov 27, 2025 10mo ago
decker-2.1.0.zip
2
Sep 10, 2025 1 year ago
decker-2.0.33.zip
1
Sep 7, 2025 1 year ago
decker-2.0.32.zip
2
Sep 5, 2025 1 year ago
decker-2.0.31.zip
1
Jul 29, 2025 1 year ago
decker-2.0.30.zip
2
Jul 28, 2025 1 year ago
decker-2.0.29.zip
1
May 7, 2025 1 year ago
decker-2.0.28.zip
2
May 7, 2025 1 year ago
decker-2.0.27.zip
1
All releases on GitHub →
D+ grade

Security

Decker 2.1.17 · audited by WP Registry

High-severity findings.

3 high 1 medium
Audited release
2.1.17
Findings
4
Worst severity
high
Content hash
4cff4372784d9d69b362c28c…

Findings

  • high Calendar REST grants access to any logged-in user with read capability

    missing_capability

    get_calendar_permissions_check() returns true if (1) any valid X-WP-Nonce for wp_rest verifies, or (2) the caller is logged in with current_user_can('read'). Subscribers have 'read', so they can enumerate Decker calendar/event JSON without meeting Decker::current_user_has_at_least_minimum_role() (default editor). The frontend template_redirect enforces the minimum role, but this REST path does not. Observable: GET /wp-json/decker/v1/calendar returns internal event data.

    includes/class-decker-calendar.php:115-145

    Recommendation

    Require Decker::current_user_has_at_least_minimum_role() (or a dedicated capability) after nonce verification; do not treat subscriber `read` as sufficient. Token-based calendar feeds should remain on the dedicated token path only.

  • high Calendar REST grants access to Subscribers and any valid wp_rest nonce

    missing_capability

    get_calendar_permissions_check() returns true if (1) X-WP-Nonce verifies for action wp_rest (no is_user_logged_in / minimum_role check), or (2) the caller is logged in with current_user_can('read'). Subscribers have 'read', so they can enumerate GET decker/v1/calendar and typed feeds. Response includes task titles, descriptions, due dates, and assigned user IDs via get_task_calendar_events(). Decker front templates enforce Decker::current_user_has_at_least_minimum_role (default editor), but this REST path bypasses that gate.

    includes/class-decker-calendar.php:116-148

    Recommendation

    Align calendar permission_callback with Decker::current_user_has_at_least_minimum_role(); never treat a bare wp_rest nonce as sufficient without verifying the user meets the minimum role (token-based feed access can remain separate).

  • high nopriv task save AJAX has nonce but no capability check

    missing_capability

    wp_ajax_nopriv_save_decker_task is registered alongside the authed action. handle_save_decker_task only calls check_ajax_referer('save_decker_task_nonce') then Decker_Task_Writer::create_or_update_task with no current_user_can / minimum_role check. save_decker_task_nonce is localized into deckerData on Decker pages (for users who pass template_redirect minimum_role). Prefer escalate: unauthenticated registration plus writer without caps means any leaked/forged uid-0 or low-priv nonce can create or update tasks.

    includes/custom-post-types/class-decker-task-ajax-save.php:46-115

    Recommendation

    Remove wp_ajax_nopriv_save_decker_task; require is_user_logged_in() and Decker::current_user_has_at_least_minimum_role() (and edit_post for updates) after the nonce check.

  • medium Task save AJAX registered for nopriv without capability check

    missing_capability

    wp_ajax_nopriv_save_decker_task is registered and handle_save_decker_task only calls check_ajax_referer('save_decker_task_nonce'); Decker_Task_Writer::create_or_update_task performs no current_user_can / minimum-role check. Frontend pages that mint the nonce require login+minimum role, so unauthenticated exploitation needs a leaked nonce, but the nopriv hook plus missing capability gate is a defense-in-depth failure and would allow any role that obtains the nonce to create/update tasks.

    includes/custom-post-types/class-decker-task-ajax-save.php:46-72

    Recommendation

    Remove the nopriv action. After nonce verification require Decker::current_user_has_at_least_minimum_role() (and edit capability for updates) before calling Decker_Task_Writer.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.