---
title: "PATCH /workspaces/{workspaceSlug}/practices/{practiceSlug}/group"
method: PATCH
path: "/workspaces/{workspaceSlug}/practices/{practiceSlug}/group"
tags: ["practice-catalog"]
---

# PATCH /workspaces/{workspaceSlug}/practices/{practiceSlug}/group

`PATCH /workspaces/{workspaceSlug}/practices/{practiceSlug}/group`

## Request

- Base URL: `/` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/workspaces/{workspaceSlug}/practices/{practiceSlug}/group`
- Auth: HTTP bearer

## Path parameters

- `workspaceSlug` string, required
- `practiceSlug` string, required

## Request body

- MovePracticeRequest
  - `groupSlug` string, nullable, required
  - `position` integer, required

## Response `200`

OK

- Practice[]
  - `catalogOrigin` CatalogOrigin, required
    - `catalogSlug` string, nullable, required
    - `localEdits` string[], required
    - `offeredDigest` string, nullable, required
    - `state` 'FROM_HEPHAESTUS' | 'EDITED_HERE' | 'UPDATE_WAITING' | 'YOURS' | 'NO_LONGER_SHIPPED', required
  - `createdAt` string, date-time, required
  - `currentVersion` PracticeVersion, required
    - `changed` string[], required
    - `createdAt` string, date-time, required
    - `createdBy` AccountRef, required
      - `avatarUrl` string, nullable, required
      - `displayName` string, nullable, required
      - `id` string, required
      - `identities` ProviderIdentityRef[], required
        - `avatarUrl` string, nullable, required
        - `displayName` string, nullable, required
        - `login` string, nullable, required
        - `provider` 'GITHUB' | 'GITLAB' | 'SLACK' | 'OUTLINE', required
      - `status` 'UNCLAIMED' | 'ACTIVE' | 'SUSPENDED' | 'DELETING' | 'DELETED', required
    - `definition` PracticeDefinition, required
      - `about` 'AUTHOR' | 'REVIEWER' | 'ASSIGNEE' | 'MERGER' | 'null', nullable, required
      - `appliesWhen` AppliesWhen, required
        - `anyOf` AppliesWhenClause[], required
          - `changedPath` string[]
          - `diffContains` string[]
          - `hasItems` string
        - `otherwise` string, required
      - `criteria` string, required
      - `guidance` PracticeGuidance, required
        - `goingWell` string, nullable, required
        - `guide` PracticeGuide, required: Developer guidance: the text of a practice's Guide tab and the SVG figures it shows. Never changes how the practice is reviewed
          - `figures` object, required: SVG markup of each figure the Markdown shows, by figure name
          - `markdown` string, required: Markdown. Shows a figure with ![description](figures/<name>.svg)
        - `visual` PracticeVisual, required: Developer guidance: one picture of the practice and what it shows. Never changes how the practice is reviewed
          - `alt` string, required: What the picture shows, for people who cannot see it
          - `svg` string, required: SVG markup. Shapes and text only; colors come from the pv-* theme classes
        - `whatGoodLooksLike` string, nullable, required
        - `whyItMatters` string, nullable, required
      - `lineNotes` boolean, required
      - `name` string, required
      - `reads` PracticeReads, required
        - `contract` string, required
        - `sources` PracticeReadSource[], required
          - `need` 'REQUIRED' | 'COMPLETE' | 'OPTIONAL', required
          - `source` string, required
      - `reviewOn` ReviewOn, required
        - `events` string[], required
        - `state` object, required
      - `reviewedBy` ReviewedBy, required
        - `by` 'HEPHAESTUS' | 'PEOPLE' | 'NOBODY', required
        - `humanReason` ReviewLimit, required
          - `code` string, required
          - `description` string, required
        - `limits` ReviewLimit[], required
          - `code` string, required
          - `description` string, required
      - `scan` ScanDefinition, required
        - `context` string[], required
        - `exclude` string[], required
        - `include` string[], required
        - `itemKind` string, required
        - `reads` PracticeReads, required
          - `contract` string, required
          - `sources` PracticeReadSource[], required
            - `need` 'REQUIRED' | 'COMPLETE' | 'OPTIONAL', required
            - `source` string, required
      - `script` string, nullable, required
    - `id` string, required
    - `name` string, nullable, required
    - `number` integer, required
    - `reviewChanged` boolean, required
    - `reviewDigest` string, required
  - `feedbackMode` FeedbackModeAssignment, required
    - `effective` 'OFF' | 'APPROVE_FIRST' | 'AUTOMATIC', required
    - `override` 'OFF' | 'APPROVE_FIRST' | 'AUTOMATIC' | 'null', nullable, required
    - `source` 'PRACTICE' | 'GROUP' | 'WORKSPACE' | 'INSTANCE', required
  - `groupSlug` string, nullable, required
  - `id` string, required
  - `kind` string, required
  - `position` integer, required
  - `slug` string, required
  - `updatedAt` string, date-time, nullable, required

## Changes

- **2026-10-17** `4b8a89bf492c`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hephaestus-build/apis/hephaestus-api/changes/workspaces/:workspaceSlug/practices/:practiceSlug/group/patch.md)

---

[API](https://skmtc.dev/hephaestus-build/apis/hephaestus-api.md) · [All operations](https://skmtc.dev/hephaestus-build/apis/hephaestus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/hephaestus-build/apis/hephaestus-api/revisions/3592ab716973?raw)
