65 State agency boards retired as government moves to bring in professionals

President William Ruto signs the National Infrastructure Fund Bill and Judges’ Retirement Benefits Bill into law at State House, Nairobi on March 9, 2026. (Photo: PCS)

Listen to article

4 min listen
Audio reading is not supported on this browser.
Ready

Thanks for listening. Continue with a related story, or tap the speaker icon on the next page to listen.

Kenya among fastest deteriorating food insecurity hotspots as 4.1 million face hunger

Lucy Mumbi

 · 

17 minutes agoRead nextOpens a fresh page.

The new law introduces competitive recruitment and bars anyone involved in active politics during the last five years from serving on State agency boards.

The government has retired all board members in 65 State agencies as the Government-Owned Enterprises Act, 2025 comes into force.
The new law introduces competitive recruitment and bars anyone involved in active politics during the last five years from serving on State agency boards. The move marks the start of reforms aimed at reducing political influence in government-owned enterprises and improving corporate governance.
Speaking during a recent meeting, President William Ruto said the changes were necessary to ensure State corporations are managed by professionals selected through a competitive process. He noted that the reforms were informed by years of failed attempts to change the management of State institutions, which had been affected by mismanagement, misuse of public funds and political interference despite recommendations from previous reform efforts.
“We have been grappling for the last 15 years on making sure that those who serve in boards of government agencies are competitively recruited so that we minimise political influence,” Ruto said.
Section 10 of the GOE Act states that a government-owned enterprise shall be managed by a board of directors consisting of nine members who will serve for a period of three years, renewable once.
The new law replaces the previous practice where government agencies were viewed as appointment opportunities for political figures and instead requires board members to undergo a competitive recruitment process.

Latest Stories

  • Kenya among fastest deteriorating food insecurity hotspots as 4.1 million face hunger
  • Kenyans withdraw billions from Boma Yangu despite growth in housing savings
  • Groundbreaking brain implant restores movement and touch in paralysed man
  • Teens who can’t control social media use more likely to develop ADHD symptoms

The Act states that independent board directors shall be selected through a structured, transparent and competitive process overseen by an independent search and selection panel appointed by the National Treasury Cabinet Secretary.
The process is intended to introduce professionalism in the running of State agencies. To qualify for appointment, a person must not have been involved in active politics within the last five years.
The boards will consist of a chairperson who will be an independent director, six independent directors, one public officer from the National Treasury nominated by the Cabinet secretary and another public officer appointed in writing by the relevant Cabinet secretary for the ministry concerned.
Section 12 of the Act provides for the disqualification of individuals seeking appointment as board members.
“A person is not qualified to be appointed as an independent director of a GOE if that person has been affiliated with a political party in the immediately preceding five years,” reads section 12 (j) of the law.
The law defines being “affiliated with” as “having an official connection to, in the case of a political party, to a governing body of a political party or has identified with a political party for purposes of vying for a political office.”
The reforms are based on recommendations from the Presidential Task Force on Parastatal Reforms, a policy document unveiled on November 12, 2013.
The task force was jointly chaired by former Mandera Central MP Abdikadir Mohamed, who was then a senior advisor to President Uhuru Kenyatta, and Isaac Awuondo, who was then group managing director of Commercial Bank of Africa.
The Government Owned Enterprises Act applies to both existing and future government-owned enterprises established as public limited companies under the Companies Act.
It covers 65 existing companies and 18 statutory entities currently involved in commercial activities, including the Agricultural Finance Corporation, Kenya Airports Authority and the Postal Corporation of Kenya.

Other Topics To Read

Top Stories Today

  • Kenya among fastest deteriorating food insecurity hotspots as 4.1 million face hunger
  • 65 State agency boards retired as government moves to bring in professionals
  • Hunger deepens for displaced families in Sudan’s El Obeid
  • Teens who can’t control social media use more likely to develop ADHD symptoms
  • Groundbreaking brain implant restores movement and touch in paralysed man
  • New report faults Kenya’s laws for criminalising begging, hawking and loitering

`;
}

return “;
}

function commentActionsMarkup(comment, canComment) {
const likeLabel = comment.liked_by_me ? ‘Liked’ : ‘Like’;
const likeCount = Number(comment.like_count || 0) > 0
? “
: ”;

const likeButton = canComment && comment.status === ‘approved’
? “
: “;

const replyButton = canComment && comment.status === ‘approved’
? “
: ”;

return `

`;
}

function commentMarkup(comment, canComment, isReply = false) {
const pendingBadge = comment.status && comment.status !== ‘approved’
? “
: ”;

const edited = comment.is_edited
? “
: ”;

const repliesHtml = Array.isArray(comment.replies) && comment.replies.length
? `

`
: “;

return `

`;
}

function replyFormMarkup(commentId) {
return `

`;
}

function setNotice(widget, message, type = ‘info’) {
const notice = widget.querySelector(‘[data-role=”notice”]’);
if (!notice) return;

if (!message) {
notice.hidden = true;
notice.textContent = ”;
notice.classList.remove(‘is-error’);
return;
}

notice.hidden = false;
notice.textContent = message;
notice.classList.toggle(‘is-error’, type === ‘error’);
}

function setCount(widget, total) {
const count = widget.querySelector(‘[data-role=”count”]’);
if (!count) return;

const num = Number(total || 0);
count.textContent = num === 1 ? ‘1 comment’ : `${num} comments`;
}

function openReplyBox(widget, commentId) {
widget.querySelectorAll(‘[data-role=”reply-box”]’).forEach(box => {
box.hidden = true;
box.innerHTML = ”;
});

const targetItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (!targetItem) return;

const replyBox = targetItem.querySelector(‘[data-role=”reply-box”]’);
if (!replyBox) return;

replyBox.hidden = false;
replyBox.innerHTML = replyFormMarkup(commentId);

const textarea = replyBox.querySelector(‘textarea’);
if (textarea) textarea.focus();
}

function closeReplyBox(container) {
if (!container) return;
container.hidden = true;
container.innerHTML = ”;
}

async function initCommentsWidget(widget) {
const state = {
articleId: Number(widget.dataset.articleId),
loadUrl: widget.dataset.loadUrl,
storeUrl: widget.dataset.storeUrl,
commentsBaseUrl: widget.dataset.commentsBaseUrl,
canComment: widget.dataset.canComment === ‘1’,
page: 1,
perPage: 10,
sort: ‘newest’,
total: 0,
hasMore: false,
busy: false
};

const list = widget.querySelector(‘[data-role=”list”]’);
const loading = widget.querySelector(‘[data-role=”loading”]’);
const empty = widget.querySelector(‘[data-role=”empty”]’);
const loadMoreBtn = widget.querySelector(‘[data-role=”load-more”]’);
const sortSelect = widget.querySelector(‘[data-role=”sort”]’);
const composerForm = widget.querySelector(‘[data-role=”composer-form”]’);

async function loadComments(reset = true) {
if (state.busy) return;

state.busy = true;
setNotice(widget, ”);
loading.hidden = false;

if (reset) {
state.page = 1;
list.innerHTML = ”;
empty.hidden = true;
}

try {
const url = new URL(state.loadUrl, window.location.origin);
url.searchParams.set(‘page’, state.page);
url.searchParams.set(‘per_page’, state.perPage);
url.searchParams.set(‘sort’, state.sort);

const response = await requestJson(url.toString(), {
method: ‘GET’,
headers: {
‘Accept’: ‘application/json’,
‘X-Requested-With’: ‘XMLHttpRequest’
}
});

const items = Array.isArray(response.data) ? response.data : [];
const meta = response.meta || {};

state.total = Number(meta.total || 0);
state.hasMore = !!meta.has_more;

setCount(widget, state.total);

if (reset) {
list.innerHTML = ”;
}

if (!items.length && reset) {
empty.hidden = false;
} else {
empty.hidden = true;
list.insertAdjacentHTML(
‘beforeend’,
items.map(item => commentMarkup(item, state.canComment, false)).join(”)
);
}

loadMoreBtn.hidden = !state.hasMore;
} catch (error) {
if (!list.children.length) {
empty.hidden = false;
empty.textContent = ‘Unable to load comments right now.’;
}
setNotice(widget, error.message || ‘Unable to load comments.’, ‘error’);
} finally {
loading.hidden = true;
state.busy = false;
}
}

async function submitTopLevelComment(form) {
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘[data-role=”submit-comment”]’);

if (!textarea) return;

const content = textarea.value.trim();
if (!content) return;

const originalText = button ? button.textContent : ”;

try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}

const response = await requestJson(state.storeUrl, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});

textarea.value = ”;

if (response?.data) {
list.insertAdjacentHTML(
‘afterbegin’,
commentMarkup(response.data, state.canComment, false)
);
empty.hidden = true;

if ((response.data.status || ”) === ‘approved’) {
state.total += 1;
setCount(widget, state.total);
}
}

setNotice(widget, response.message || ‘Comment posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post comment.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post comment’;
}
}
}

async function submitReply(form) {
const commentId = Number(form.dataset.commentId || 0);
const textarea = form.querySelector(‘textarea[name=”content”]’);
const button = form.querySelector(‘.ev-comments__reply-submit’);

if (!commentId || !textarea) return;

const content = textarea.value.trim();
if (!content) return;

const originalText = button ? button.textContent : ”;

try {
if (button) {
button.disabled = true;
button.textContent = ‘Posting…’;
}

const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/reply`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({
article_id: state.articleId,
content: content,
source_url: window.location.href
})
});

if (response?.data) {
const parentItem = widget.querySelector(`.ev-comments__item[data-comment-id=”${commentId}”]`);
if (parentItem) {
const repliesWrap = parentItem.querySelector(‘.ev-comments__replies’);
if (repliesWrap) {
repliesWrap.insertAdjacentHTML(
‘beforeend’,
commentMarkup(response.data, state.canComment, true)
);
}
}
}

closeReplyBox(form.closest(‘[data-role=”reply-box”]’));
setNotice(widget, response.message || ‘Reply posted successfully.’);
} catch (error) {
setNotice(widget, error.message || ‘Unable to post reply.’, ‘error’);
} finally {
if (button) {
button.disabled = false;
button.textContent = originalText || ‘Post reply’;
}
}
}

async function toggleLike(button) {
const commentId = Number(button.dataset.commentId || 0);
if (!commentId) return;

const originalHtml = button.innerHTML;

try {
button.disabled = true;
button.innerHTML = ‘Working…’;

const response = await requestJson(`${state.commentsBaseUrl}/${commentId}/like`, {
method: ‘POST’,
headers: buildJsonHeaders(),
body: JSON.stringify({})
});

const liked = !!response?.data?.liked;
const likeCount = Number(response?.data?.like_count || 0);

button.classList.toggle(‘is-liked’, liked);
button.innerHTML = `${liked ? ‘Liked’ : ‘Like’} ${likeCount > 0 ? “ : ”}`;
} catch (error) {
button.innerHTML = originalHtml;
setNotice(widget, error.message || ‘Unable to update like.’, ‘error’);
} finally {
button.disabled = false;
}
}

if (composerForm) {
composerForm.addEventListener(‘submit’, function (e) {
e.preventDefault();
submitTopLevelComment(composerForm);
});
}

if (sortSelect) {
sortSelect.addEventListener(‘change’, function () {
state.sort = this.value || ‘newest’;
loadComments(true);
});
}

if (loadMoreBtn) {
loadMoreBtn.addEventListener(‘click’, function () {
if (state.busy || !state.hasMore) return;
state.page += 1;
loadComments(false);
});
}

widget.addEventListener(‘click’, function (e) {
const likeBtn = e.target.closest(‘[data-action=”toggle-like”]’);
if (likeBtn) {
e.preventDefault();
toggleLike(likeBtn);
return;
}

const replyBtn = e.target.closest(‘[data-action=”toggle-reply”]’);
if (replyBtn) {
e.preventDefault();
openReplyBox(widget, Number(replyBtn.dataset.commentId || 0));
return;
}

const cancelReplyBtn = e.target.closest(‘[data-action=”cancel-reply”]’);
if (cancelReplyBtn) {
e.preventDefault();
closeReplyBox(cancelReplyBtn.closest(‘[data-role=”reply-box”]’));
}
});

widget.addEventListener(‘submit’, function (e) {
const replyForm = e.target.closest(‘.ev-comments__reply-form’);
if (replyForm) {
e.preventDefault();
submitReply(replyForm);
}
});

loadComments(true);
}

document.addEventListener(‘DOMContentLoaded’, function () {
document.querySelectorAll(‘.ev-comments’).forEach(initCommentsWidget);
});
})();

Trending

Kenya among fastest deteriorating food insecurity hotspots as 4.1 million face hungerNews
|Lucy Mumbi
|21 minutes ago

Kenyans withdraw billions from Boma Yangu despite growth in housing savingsNews
|Lucy Mumbi
|1 hour ago

Madagascar hunger crisis set to worsen, with 3.72 million people at riskAfrica
|Bashir Mbuthia
|11 hours ago

France, England target redemption in World Cup bronze battle in MiamiNews
|Erick Kariuki
|21 hours ago

Sudanese army reports destroying 205 RSF combat vehicles in July operationsSudan
|Bashir Mbuthia
|1 day ago

Hunger deepens for displaced families in Sudan’s El ObeidSudan
|UN News
|3 hours ago

Teens who can’t control social media use more likely to develop ADHD symptomsHealth
|Charity Kilei
|2 hours ago

Mildred Cheche eyes U‑17 World Cup knockout stage, urges grassroots investmentNews
|Erick Kariuki
|1 day ago

Kamukunji Police Station selected to host Nairobi Metropolitan Police Unit headquartersNews
|Rachael Mutabasi
|1 day ago

Crisis looms as Iran reportedly asks Houthis to prepare Red Sea closure amid renewed hostilitiesBusiness
|Alfred Onyango
|18 hours ago

Share.
Leave A Reply

Exit mobile version